linux-无法在Ubuntu上运行我自己的OpenGL 3程序
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了linux-无法在Ubuntu上运行我自己的OpenGL 3程序,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1761字,纯文字阅读大概需要3分钟。
内容图文
![linux-无法在Ubuntu上运行我自己的OpenGL 3程序](/upload/InfoBanner/zyjiaocheng/948/ff07da9d0e934cab94e9fb934679f48b.jpg)
我正在尝试OpenGL 2.x和3.x教程.程序进行编译和链接,然后在看似无害的行上进行段错误处理,例如
glGenBuffers (1, &m_buffer);
我的main()以glewInit和glutInit开头. OpenGL 1程序可以编译并正常运行,这似乎是由glew包装的新功能.
一个教程说,在尝试任何其他操作之前,我应该先进行此测试:
if (false == glewIsSupported ("GL_VERSION_2_0"))
即使我将版本字符串更改为GL_VERSION_1_0,此测试也总是失败.
#define GL_VERSION_1_3 1是GL / gl.h中的最高此类定义,并且没有GL / gl3.h或GL / GL3目录.
apt说我已经安装了freeglut3和freeglut3-dev,还安装了mesa-common-dev,libglew-1.6和libgl1-mesa-dev,但是似乎没有任何libgl3 *软件包可用.
这是一些驱动程序信息(我没有专有的驱动程序,集成了Nvidia附加卡的Intel Ivy Bridge图形,我都相信OpenGL 1.4兼容)
#> glxinfo | grep version
server glx version string: 1.4
client glx version string: 1.4
GLX version: 1.4
OpenGL version string: 3.0 Mesa 9.0
OpenGL shading language version string: 1.30
这一切使我很困惑.
我是否应该安装特定的OpenGL2 / 3/4软件包,或者从理论上讲,它是否适用于所有开发套件(对于Ubuntu)?
为什么GL_VERSION_1_3是定义最高的版本,而直到1.5版才引入glGenBuffers?
为什么glewIsSupported即使对于1.0版也会失败?
我得到的印象是我没有真正实现该API的库和/或驱动程序,但是好像我根据glxinfo所做的那样,这使我认为开发库有问题,但我没有那里发生了什么的连贯图片.
基本上,我该怎么做才能使程序编译/链接/运行?
我知道Ubuntu不是一个很好的开发环境,但是请不要建议我更改发行版.一定有办法!
解决方法:
My
main()
starts withglewInit
andglutInit
不.在glutCreateWindow()返回之前,您不会获得当前的GL上下文.之后,您可以调用glewInit()和glewIsSupported().
像这样:
#include <GL/glew.h>
#include <GL/glut.h>
...
int main( int argc, char** argv )
{
glutInit( &argc, argv );
glutInitDisplayMode( GLUT_RGBA | GLUT_DOUBLE );
glutInitWindowSize( 300, 300 );
glutCreateWindow( "OpenGL" );
glewInit();
...
return 0;
}
内容总结
以上是互联网集市为您收集整理的linux-无法在Ubuntu上运行我自己的OpenGL 3程序全部内容,希望文章能够帮你解决linux-无法在Ubuntu上运行我自己的OpenGL 3程序所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。