当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 6 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : [问题求助]运行opengl的一个程序出现错误
帖子发表于 : 2009-05-07 17:47 

注册: 2009-05-07 17:33
帖子: 2
送出感谢: 0 次
接收感谢: 0 次
# include <GL/glut.h>
# include <stdlib.h>

/**//* 初始化材料属性、光源属性、光照模型,打开深度缓冲区 */
void init ( void )
{
GLfloat mat_specular [ ] = { 1.0, 1.0, 1.0, 1.0 };
GLfloat mat_shininess [ ] = { 50.0 };
GLfloat light_position [ ] = { 1.0, 1.0, 1.0, 0.0 };

glClearColor ( 0.0, 0.0, 0.0, 0.0 );
glShadeModel ( GL_SMOOTH );

glMaterialfv ( GL_FRONT, GL_SPECULAR, mat_specular);
glMaterialfv ( GL_FRONT, GL_SHININESS, mat_shininess);
glLightfv ( GL_LIGHT0, GL_POSITION, light_position);

glEnable (GL_LIGHTING);
glEnable (GL_LIGHT0);
glEnable (GL_DEPTH_TEST);
}

/**//*调用GLUT函数,绘制一个球*/
void display ( void )
{
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glutSolidSphere (1.0, 40, 50);
glFlush ();
}


/**//* 定义GLUT的reshape函数,w、h分别是当前窗口的宽和高*/
void reshape (int w, int h)
{
glViewport (0, 0, (GLsizei) w, (GLsizei) h);
glMatrixMode (GL_PROJECTION);
glLoadIdentity ( );
if (w <= h)
glOrtho (-1.5, 1.5, -1.5 * ( GLfloat ) h / ( GLfloat ) w, 1.5 * ( GLfloat ) h / ( GLfloat ) w, -10.0, 10.0 );
else
glOrtho (-1.5 * ( GLfloat ) w / ( GLfloat ) h, 1.5 * ( GLfloat ) w / ( GLfloat ) h, -1.5, 1.5, -10.0, 10.0);
glMatrixMode ( GL_MODELVIEW );
glLoadIdentity ( ) ;
}


/**//* 定义对键盘的响应函数 */
void keyboard ( unsigned char key, int x, int y)
{
/**//*按Esc键退出*/
switch (key)
{
case 27:
exit ( 0 );
break;
}
}


int main(int argc, char** argv)
{
/**//* GLUT环境初始化*/
glutInit (&argc, argv);
/**//* 显示模式初始化 */
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
/**//* 定义窗口大小 */
glutInitWindowSize (300, 300);
/**//* 定义窗口位置 */
glutInitWindowPosition (100, 100);
/**//* 显示窗口,窗口标题为执行函数名 */
glutCreateWindow ( argv [ 0 ] );
/**//* 调用OpenGL初始化函数 */
init ( );
/**//* 注册OpenGL绘图函数 */
glutDisplayFunc ( display );
/**//* 注册窗口大小改变时的响应函数 */
glutReshapeFunc ( reshape );
/**//* 注册键盘响应函数 */
glutKeyboardFunc ( keyboard );
/**//* 进入GLUT消息循环,开始执行程序 */
glutMainLoop( );
return 0;
}
运行sample.cpp时出现如附件所示的问题。


附件:
Screenshot.png
Screenshot.png [ 340.76 KiB | 被浏览 437 次 ]

页首
 用户资料  
 
2 楼 
 文章标题 : Re: [问题求助]运行opengl的一个程序出现错误
帖子发表于 : 2009-05-08 11:19 

注册: 2009-05-07 17:33
帖子: 2
送出感谢: 0 次
接收感谢: 0 次
请问题那位高人可能帮帮我啊 :em01
我在重装系统以前运行这个程序没有问题,不过不知道为什么重装后就变成这样了 :em06


页首
 用户资料  
 
3 楼 
 文章标题 : Re: [问题求助]运行opengl的一个程序出现错误
帖子发表于 : 2009-06-06 10:36 

注册: 2007-04-21 7:37
帖子: 99
送出感谢: 0 次
接收感谢: 0 次
我的运行,是窗口没有边框
估计是mesa的glut 有问题把
图片


页首
 用户资料  
 
4 楼 
 文章标题 : Re: [问题求助]运行opengl的一个程序出现错误
帖子发表于 : 2009-10-12 21:55 

注册: 2009-09-18 19:03
帖子: 3
送出感谢: 0 次
接收感谢: 0 次
hi,楼上的兄弟
opengl无窗口边框的问题解决了吗,我也遇到同样问题,您是怎么处理了?


页首
 用户资料  
 
5 楼 
 文章标题 : Re: [问题求助]运行opengl的一个程序出现错误
帖子发表于 : 2009-11-18 16:06 

注册: 2009-04-07 21:33
帖子: 1
送出感谢: 0 次
接收感谢: 0 次
应该是glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH); 中GLUT_SINGLE 的问题,换成GLUT_DOUBLE,并把glFlush(); 换成 glutSwapBuffers(); 就没问题了。

但我不知道为什么会这样???


页首
 用户资料  
 
6 楼 
 文章标题 : Re: [问题求助]运行opengl的一个程序出现错误
帖子发表于 : 2009-11-18 16:38 
头像

注册: 2009-11-17 12:29
帖子: 883
送出感谢: 0 次
接收感谢: 0 次
我用ATI官方驱动,一点问题也没。。

另外glut和MESA无关,用官方驱动也一样。
官方就提供了一个libGL.so 这一个。。

说起来这些问题有点像是在3D桌面模式下的结果。。

偶这官方驱动 在3D模式下虽然启动窗口、RESIZE窗口、最小化还原等时很慢,但是显示是正确的。。


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 6 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译