如何在Windows中创建全屏OpenGL ES渲染视图
How to create a fullscreen OpenGL-ES renderview in Windows?
我正在使用cocos2d-x开发一款iPhone游戏,然后我突然想到为什么不在PC上发布我的游戏呢?唯一的问题是还没有实现将窗口设置为全屏模式。现在我只是纠结于如何创建一个全屏窗口?使用了一些窗口创建函数,但我不确定应该更改哪一个以及如何更改。
有一个eglCreateWindowSurface
函数,cocos2d正在调用它来创建一个窗口。我不确定我应该更改哪个选项,以便创建全屏窗口。如果我能实现一个功能,在运行时将游戏切换到全屏模式并返回,那也太好了。
在Windows上,它有点复杂。本质上你必须:
-
创建一个代理OpenGL上下文,通过扩展访问OpenGL-1.1以上的功能
-
加载创建OpenGL ES兼容上下文所需的扩展
-
创建更高版本的OpenGL上下文
-
再次加载扩展,现在针对这个上下文
幸运的是,所有这些都包含在几个易于使用的库中。我建议使用GLFW创建Window/Context(它也处理所有代理上下文),并使用GLee或GLEW使OpenGL扩展可用于代码。
http://www.glfw.org/
http://elf-stone.com/glee.php
http://glew.sourceforge.net/
这些库是跨平台的,因此您的应用程序/游戏本身不使用依赖于操作系统的函数,它不仅可以为Windows编译,还可以为Linux、BSD和MacOS X编译。
相关文章:
- OpenGL ES 2.0将纹理绘制到屏幕上是行不通的
- SDL + OpenGL ES 2.0 使用着色器显示纹理
- 为什么OpenGL ES 3.1+上GL_DEPTH_COMPONENT的glCheckFramebufferStatu
- OpenGL ES 绘制形状
- 如何使用着色器在 opengl es 中渲染四边形内部的部分纹理
- OpenGL ES:在顶点着色器中计算顶点位置时性能不佳
- OpenGL (ES) 图像处理C++
- E/libEGL:调用没有当前上下文的 OpenGL ES API (每个线程记录一次) - Android/SDL
- 使用GlblitFrameBuffer进行多样采样,无法使用OpenGL ES 3.0
- 在使用PI上的OpenGL ES绘制之前,如何旋转纹理
- 使用Emscripten将OpenGL ES转换回主机
- OpenGL ES ANDROID C++ ERROR
- OpenGL ES glTexImage2D optimization
- 在 OpenGL ES for Android 中运行时创建大型纹理的最有效方法
- 为 Qt5 指定 OpenGL Desktop 而不是 ES
- 使用GlreadPixels()opengl es读取浮动值
- 如何将这些OpenGL着色器转换为Android NDK的GLES3的OpenGL ES着色器
- glDrawBuffers in opengl es 2.0 c++
- 如何在OpenGL ES 1.X中实现Glpushattrib(GL_Current_bit)
- android最佳OpenGL ES语法