SDL2跨平台OpenGL 3+和OpenGL ES 2.0或3.0

时间:2013-12-08 04:37:34

标签: android ios opengl opengl-es sdl-2

SDL2是否有一些超级简单的基本hello world cube项目(带安装教程)可以轻松构建和运行(Windows,Linux,例如Ubuntu,Mac OS X,Android,iOS),使用OpenGL 3中的现代OpenGL .x或4.x和OpenGLES 2.0或3.0?

我下载了SDL2,很容易让他们的示例testgles.cpp和testgl.cpp构建......

然而,testgl.cpp是一个非常古老的(gl2样式),所以我尝试了testgles.cpp。不幸的是,即使这样也充满了旧式固定函数调用,如glMatrixMode(GL_MODELVIEW)。它令人烦恼地与SDLTest_Common代码过度集成。

我可以从一个更好的简单清洁hello世界项目(例如彩色立方体,纹理立方体)开始吗?

或者是否有一些原因导致他们没有包含这样的示例启动项目或教程?

或者我应该使用不同的库而不是更简单的SDL2清洁设置?基本上我想编写OpenGL / OpenGLES(也许是DirectX)跨平台的C ++代码。但是设置SDL2比我预期的更麻烦,更痛苦。

到目前为止,我刚刚创建了一个带有SDL2代码的svn存储库,并在这五个平台上构建了testgl.cpp和testgles.cpp。但是那使用了很多旧式的OpenGL / OpenGLES代码,所以现在我正在慢慢地使用它来使用更新的东西......这真的很痛苦。我不明白为什么SDL2不仅包含使用现代OpenGL / OpenGLES(和DirectX)的基本hello world跨平台启动项目(例如纹理立方体)。

2 个答案:

答案 0 :(得分:0)

如果您想编写跨平台的OpenGL,可以查看GLFW来设置OpenGL上下文。它处理简单的窗口和上下文创建以及用户输入。

我有一种方法可以在我的示例代码here中渲染彩色多维数据集。它在我的库中很漂亮,因为它对我的包装类进行了很多调用。它们也可以在同一个库中使用,或者您可以查看它们的最新版本here

答案 1 :(得分:0)

SDL2是一个很好的开始方式。我甚至可以说,SDL是最受欢迎且多平台的lib,特别是你考虑使用joyics或者稍后使用steam。没有必要寻找任何其他lib。但请记住,它只是提供媒体访问的低级层。向用户提供高质量的Opengl 3.0项目并非他们的工作。你需要的是学习一些现代的OGL基础知识 - 你必须在其他地方做。就这么简单。

您可以随时提供此类项目,并链接到官方SDL wiki。 ;)SDL社区将非常满意。

顺便说一下。 DirectX是“微软的非开源SDL” - 它非常非跨平台。