在orangepi-PC下使用pyopengl

在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.7/site-packages/OpenGL/platform/glx.pyc in GL(self)
     18             )
     19         except OSError as err:
---> 20             raise ImportError("Unable to load OpenGL library", *err.args)
     21     @baseplatform.lazy_property
     22     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即可成功

时间: 2024-08-25 01:35:09

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

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

1.本人的板子是orangepi  pc,安装的debian系统 2.启动完成后,默认可以用xshell登录板子的,使用nano更改/etc/apt/source.list [email protected]:~# nano /etc/apt/sources.list 复制代码 deb http://ftp.cn.debian.org/debian/ jessie main non-free contribdeb http://ftp.cn.debian.org/debian/ jessie-p

linux下,pipe的容量的讨论与查看

1.pipe的容量 2.6标准版本的linux内核,pipe缓冲区是64KB,尽管命令ulimit -a看到管道大小8块,缓冲区的大小不是4 k,因为内核动态分配最大16"缓冲条目",乘64 k.这些限制是硬编码的 2.如何查看自己pc上的pipe多大 1)通过ulimit -a查看到 pipe size 一次原子写入为:512Bytes*8=4096Bytes 查看缓冲条目个数:cat /usr/src/kernels/3.10.0-327.el7.x86_64/include/li

搭建linux下的DNW烧写环境(替代windows下的超级串口终端和DNW)

软件环境:ubuntu 13.10 硬件环境:TQ2440开发板 由于我的PC机操作系统是win8.1,不知何故死活装不上天嵌给的USB下载驱动,所以在PC下烧写开发板系统和裸机程序变得不可能,后来经过一番摸索,发现完全可以在linux下用minicom代替windows下的超级串口终端,用dnw2(linux版本)代替windows下的DNW,下面是具体的环境搭建过程: 搭建linux下的minicom串口通信环境: 1.1 下载并安装minicom,在终端输入命令:sudo apt-get

Win7下安装配置gVim

本文根据vim官网的<Simple Steps to Help You Install gVim on Windows 7>[1]一文整理而成. 1. 下载gVim 在http://www.vim.org/download.php/pc 下找到“PC: MS-DOS and MS-Windows”,下载“gvim74.exe”[2]. 2. 安装gVim 1. 安装时可以选择更改目录(文中在 Users/用户名 下面新建了一个目录Vim,将gVim安装在了该目录下). 2. 安装时注意选择‘F

debian下蓝牙适配器的配置和使用

本文打算将蓝牙适配器和手机蓝牙进行配对. 买了个支持蓝牙4.0协议的蓝牙适配器,将其插入到pc(debian 7.4)的usb口. 查看手机蓝牙信息: 选择手机中"设置"->"关于手机"->"状态信息"可以看到蓝牙地址是18:DC:56:D2:1C:1A pc上安装蓝牙工具: sudo apt-get install bluez bluez-hcidump 查看系统输出信息: $ dmesg | tail -n 4 [25259.40

IE下CSS3伪类的支持

当css3.0出现以后,着实让我兴奋了好久,因为出现了很多选择器,我们在也不用靠js做复杂判断了.比如:nth-child,很容易就可以判断奇偶对象 “:nth-child(2n)和:nth-child(2n+1)” 但是IE对css3的严重不支持,实在让我头疼.虽然现在IE9的发布,但是国人还有很多在使用IE6 7 8. 无意间发现了一个js库,虽然不知道原理是什么,但是尝试了一下,发现完全支持IE下的伪类.嘿嘿,拿过来用就好了. 提供下载地址:http://selectivizr.com/

arm-linux笔记3:arm-linux PC文件传输方法总结(4种最常见的方法)

arm-linux笔记3:arm-linux PC文件传输方法总结(4种最常见的方法) 1使用串口终端传输文件 2使用ftp传输文件 3使用nfs传输文件 4使用u盘拷贝 串口的优点是方法简单,不需要过多的配置,不需要联接网络,但是发送数据的速度比较慢,不适用于传输超过10M的文件 ftp的配置的时候需要联网,还需要下载ftp服务以及进行复杂的配置,大小文件传输速度都比较快,但是好像只能传输单个文件,没有nfs方便 nfs配置的时候也需要联网,还需要下载nfs服务以及进行复杂的配置,配置好了之后

mac 中vmware fusion 使用技巧 (delete and control)

在MAC上使用虚拟机时,CTRL+左键=右键也对使用WORD非常不便.解决的方法除了楼上的使用Karabiner工具将此系统快捷键重定向之外,还有一种非常简便的方法,即在虚拟机状态下使用CTRL+COMMAND+左键,其效果等同于纯PC下的CTRL+左键. 按住[option]键再按[delete]可以删除光标前的一句话或一整个单词按住[command]再按[delete],可以删除一整行文字macbook上的向后删除(就像PC上键盘的delete),是按住[fn]再按[delete]

HTML5_01之表单新特性

1.WebStorm快捷键: Ctrl+Alt+(向下方向键):快速复制当前行 Alt+(向上/下方向键):移动当前行 Ctrl+D:删除当前行 Ctrl+/:快速(取消)注释当前行 Ctrl+Alt+L:格式化当前文档2.HTML5九大新特性: ①表单新特性.②视频音频.③Canvas绘图.④SVG绘图.⑤地理定位.⑥拖放API.⑦WebWorker.⑧WebStorage.⑨WebSocket3.表单Input类型: ①已有type类型:  text(文本框).password(密码框).r