首页
登录 | 注册

OpenGL入门6——GLUT窗口

概述:

       GLUT与任意窗口系统无关,使用GLUT子程序来建立和显示窗口可以使程序不依赖于任意的特定计算机。

函数:

       glutInit( &argc, argv);//参数与主程序相同

       glutInitDisplayMode( mode );//用来选择颜色模式和不同的缓存组合;

       glutInitWindowPosition( xTopLeft, yTopLeft);//参数为显示窗口左上角相对于屏幕左上角的整型屏幕坐标位置。如果为负值,则由窗口系统来确定显示窗口的位置。

       glutInitWindowSize(dwWidth, dwHeight);

 1、创建窗口

       windowID = glutCreateWindow( "Test");

       其中windowID为创建的窗口的标识,唯一。

2、删除窗口

      glutDestoryWIndow( windowID);

3、设置窗口为当前显示窗口(current display window)

      glutSetWindow( windowID);

4、获得当前显示窗口

      currentWindowID = glutGetWindow();

      注:在没有显示窗口或当前显示窗口已被删除的情况下返回0;

5、改变当前显示窗口的位置

      glutPositionWIndow( xNewTopLeft, yNewTopLeft);

6、设定当前显示窗口的尺寸

      glutReshapeWindow( dwNewWidth, dwNewHeight);

7、将当前窗口扩展到整个屏幕(全屏显示)

      glutFullScreen();

8、相应窗口尺寸改变的回调:可以使用该函数来调整显示窗口的变化

      glutReshapeFunc();

9、将当前窗口变成一个图标,()

      glutIconifyWindow();

10、设置图标名字:

      glutSetIconTitle( "Icon Name");

11、改变窗口标题

      glutSetWindowTitle("New Window Name");

12、将窗口设置为当前显示窗口并且置顶:

      glutSetWindow( windowID);

      glutPopWindow();

13、将窗口设置为显示窗口并且置为最底层

      glutSetWindow( windowID);

      glutPushWindow( );

14、隐藏和显示窗口

      glutHideWindow();

      glutShowWindow();

15、创建子窗口

      glutCreateSubWindow( windowID, xBottonLeft, yBottomLeft, width, height);

      注:WindowID标识父窗口,其余参数指定子窗口在显示窗口中的定位。

      注:子窗口可以重定位、重定型、置顶、置底、显示、隐藏,但是不能最小化。

16、为当前窗口设定屏幕光标的形状

     glutSetCursor( shape);

17、显示回调函数

     glutDiaplayFunc();

18、在窗口需要重绘时调用:

     glutPostRedisplay();

19、开启消息循环,执行程序

    glutMainLoop();

20、指定系统空闲时间的处理函数:

    glutIdleFunc(  function );

21、查询系统某些参数的当前值

    glutGet( stateParam );

    例如:glutGet( GLUT_WINDOW_X);获得当前显示窗口左上角相对于屏幕左上角的x坐标位置。GLUT_WINDOW_WIDTH获得当前显示窗口宽度,GLUT_SCREEN_WIDTH获得屏幕宽度。


其他OpenGL操作技巧窗口:

1、去除OpenGL控制台程序的命令行窗口,仅显示创建的OpenGL窗口

      方法一:

              在程序中加入 #pragma comment(linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"")

              此方法在VS2010中不适用。

      方法二:      

             (1)、在项目属性中,切换到“链接器”->系统,右侧窗口的子系统选择:窗口 (/SUBSYSTEM:WINDOWS) ; 

             (2)、在项目属性中,再切换到“链接器”->命令行,在“其他选项”中输入:/ENTRY:mainCRTStartup (可以去除程序运行时出现的dos窗口)

             (3)、选择项目属性,选择C/C++->预处理器,在右侧的“预处理器定义”处,删除“_CONSOLE“;(经测试发现,这一步不操作也可以)

             此方法 在VS2010中是有效的。


       



2020 jeepxie.net webmaster#jeepxie.net
10 q. 0.009 s.
京ICP备10005923号