在OrangePi-PC下安装显卡驱动以及opengl:

http://www.orangepi.org/orangepibbsen/forum.php?mod=viewthread&tid=53

在这个链接中说要:Copy Libs (libGLES* libGLES* LibUmp LibMali) to /usr/lib

但是在查找动态链接库的时候,orangepi会在/usr/lib/arm-linux-gnueabihf下查找动态库,请参考ldconfig的手册,或者是查看/etc/ld.so.conf.d下的文件

因此,我们需要拷贝 (libGLES* libGLES* LibUmp LibMali) 到 /usr/lib/arm-linux-gnueabihf 下

安装完成后即可使用opengl es以及egl的c接口进行开发

但是如果安装PyOpenGL:

  http://pyopengl.sourceforge.net

  在ubuntu下直接使用pip安装:

pip install PyOpenGL --user
pip install PyOpenGL-accelerate --user

在import OpenGL.GL或者import OpenGL.GLES2时会报错:

/home/orangepi/.local/lib/python2./site-packages/OpenGL/platform/glx.pyc in GL(self)
)
except OSError as err:
---> raise ImportError("Unable to load OpenGL library", *err.args)
@baseplatform.lazy_property
def GLU(self): ImportError: ('Unable to load OpenGL library', '/usr/lib/arm-linux-gnueabihf/GL: cannot read file data: Is a directory', 'GL', None)

这是由于OrangePi的mali驱动只提供了OpenGL ES接口,而PyOpenGL要求必须有GL接口。

修正这个问题需要更改PyOpenGL下的platform/glx.py文件(如果使用pip安装,并使用--user参数,则安装路径为:~/.local/lib/python2.7/site-packages/OpenGL/platform/glx.py), 做如下更改:

@baseplatform.lazy_property
def GL(self):
try:
return ctypesloader.loadLibrary(
ctypes.cdll,
'GL',
mode=ctypes.RTLD_GLOBAL
)
except OSError as err:
# -- raise ImportError("Unable to load OpenGL library", *err.args)
# ++ return None
return None
# GLX doesn't seem to have its own loadable module?
@baseplatform.lazy_property
# -- def GLX(self): return self.GL
# ++ def GLX(self): return self.GLES2
def GLX(self): return self.GLES2
@baseplatform.lazy_property
def GetCurrentContext( self ):
# -- return self.GL.glXGetCurrentContext
# ++ return None
return None
@baseplatform.lazy_property
def glGetError( self ):
# -- return self.GL.glGetError
# ++ return self.GLES2.glGetError
return self.GLES2.glGetError

这是在import OpenGL.GLES2即可成功

在orangepi-PC下使用pyopengl的更多相关文章

  1. Issue 6: 装机系列1,PC下windows系统安装指南

    0.前言 接触电脑将近7年时间,多次说要写下这篇文章,一直未曾提笔,始终怕给人以误导.到如今,来来回回装系统的次数得超过百次了.本着不误导人的想法,本文试着总结一下装系统的基本方法和思路,但不会过多涉 ...

  2. PC下ubuntu查找PC串口并加入用户组

    1. 查看ttyS0隶属的组:ls -l /dev/ttyS0  //发现隶属于dialout组 输出: crw-rw---- 1 root dialout 4, 64  9月  9 08:23 /d ...

  3. orange pi pc 体验(二)远程登录服务器

    1.本人的板子是orangepi  pc,安装的debian系统 2.启动完成后,默认可以用xshell登录板子的,使用nano更改/etc/apt/source.list root@OrangePI ...

  4. linux(TINY6410)下移植boa服务器

    今天在tiny6410上移植了boa服务器,中间遇到了一些小问题.当时也及时解决了. 第一步:boa的编译 在www.boa.org下载Boa的压缩包  我这里用的是 boa-0.94.13.tar. ...

  5. Win7下安装配置gVim

    本文根据vim官网的<Simple Steps to Help You Install gVim on Windows 7>[1]一文整理而成. 1. 下载gVim 在http://www ...

  6. PC上安装MAC X Lion

    PC上安装MACXLion 网上关于如何在PC下安装MAC的文章已近不少了,但对于一些初学者在实践当中会遇到各种问题,以下视频资料为大家展示两种虚拟机安装MacOS. 1.VmwareWorkstat ...

  7. linux下编译运行驱动

    linux下编译运行驱动 嵌入式linux下设备驱动的运行和linux x86 pc下运行设备驱动是类似的,由于手头没有嵌入式linux设备,先在vmware上的linux上学习驱动开发. 按照如下方 ...

  8. Linux下链接数据库图形化工具

    (一).Linux环境下mysql的安装.SQL操作 Linux下安装MySQL (rmp --help) 基本步骤:上传软件->检查当前Linux环境是否已经安装,如发现系统自带的,先卸载-& ...

  9. IE下CSS3伪类的支持

    当css3.0出现以后,着实让我兴奋了好久,因为出现了很多选择器,我们在也不用靠js做复杂判断了.比如:nth-child,很容易就可以判断奇偶对象 “:nth-child(2n)和:nth-chil ...

随机推荐

  1. Jquery Ajax 异步设置Table中某列的值

    可根据table中某列中的ID去改变某列的值! 只是参考,实际应用中不能这样做的,如果有很多行,频繁访问服务器,服务器是顶不住的! JS: $(document).ready(function () ...

  2. 阿里云centos 安装 nodejs npm express

    yum check-update yum install vsftpdvi /etc/vsftpd/vsftpd.conf anonymous_enable=NO service vsftpd sta ...

  3. 《Genesis-3D开源游戏引擎完整实例教程-跑酷游戏篇05:二段跳》

    5.二段跳 二段跳概述: 基本跑酷游戏的框架搭建完毕,开发者会根据开发的游戏特性,增设一些额外功能,使游戏具有可玩性性和画面感.下面我们以角色的二段跳为例,来了解在跑酷游戏中增设其它功能的流程.二段跳 ...

  4. linux tar打包

    范例一:将整个 /etc 目录下的文件全部打包成为 /tmp/etc.tar[root@linux ~]# tar -cvf /tmp/etc.tar /etc <==仅打包,不压缩![root ...

  5. berserkJS(大名:狂暴JS / 昵称:疯子JS)

    极分享:高质分享+专业互助=没有难做的软件+没有不得已的加班 http://www.finalshares.com/read-6763?f=g-20

  6. Java网络编程(TCP服务端)

    /* * TCP服务端: * 1.创建服务端socket服务,并监听一个端口 * 2.服务端为了给客户端提供服务,获取客户端的内容,可以通过accept方法获取连接过来的客户端对象 * 3.可以通过获 ...

  7. ecshop数据库表结构

    ecs_account_log //用户账目日志表 ecs_activity //活动表(代码,名称,开始,结束,描述) ecs_ad //广告表(位置,类型,名称,链接,图片,开始,结束,广告主相关 ...

  8. XMPP——Smack[2]会话、消息监听、字体表情和聊天窗口控制

    连接之后,拿到了connection,通过它可以搞定会话 建立一个会话 MessageListener msgListener = new MessageListener() { public voi ...

  9. Dev XtraTreeList 学习

    本文转载:http://www.cnblogs.com/VincentLuo/archive/2012/01/06/2313983.html 一.设置载请保留地址http://www.cnblogs. ...

  10. appDelegate中的委托协议方法以及使用观察者模式获取其触发方法

    //当应用程序将要进入非活动状态执行,在此期间,应用程序不接受消息或事件,比如来电 - (void)applicationWillResignActive:(UIApplication *)appli ...