【问题标题】:SDL2 cross-platform OpenGL 3+ and OpenGL ES 2.0 or 3.0SDL2 跨平台 OpenGL 3+ 和 OpenGL ES 2.0 或 3.0
【发布时间】:2015-08-24 09:02:37
【问题描述】:

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

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

然而,testgl.cpp 太旧了(gl2 风格),所以我尝试了 testgles.cpp。不幸的是,即使这样也充满了老式的固定函数调用,比如 glMatrixMode(GL_MODELVIEW)。它与 SDLTest_Common 代码过度集成,令人讨厌。

有没有更好的简单干净的 hello world 项目(例如彩色立方体、纹理立方体)可供我开始?

或者有什么原因他们不包含这样的示例启动项目或教程?

或者我是否应该使用其他库而不是 SDL2,这样设置起来更简单、更干净?基本上我想编写 OpenGL / OpenGLES(也许还有 DirectX)跨平台 C++ 代码。但是设置 SDL2 比我预想的要麻烦和痛苦得多。

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

【问题讨论】:

  • 这个问题跑题了!

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


【解决方案1】:

SDL2 是一个很好的开始方式。我什至可以说,SDL 是最流行的多平台库,尤其是您考虑使用 Joystics 或稍后继续使用 Steam。无需寻找任何其他库。但请记住,它只是提供媒体访问的底层。向用户提供高质量的 Opengl 3.0 项目不是他们的工作。您需要学习一些现代 OGL 基础知识——而且您必须在其他地方学习。就这么简单。

您总是可以使用类似这样的项目并链接到官方 SDL wiki。 ;) SDL 社区对此非常满意。

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

【讨论】:

    【解决方案2】:

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

    在我的一些示例代码here 中,我有一个渲染彩色立方体的方法。尽管它对我的包装类进行了很多调用,但它非常融入我的库中。它们也可以在同一个库中使用,或者您可以查看它们的最新版本here。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-27
      • 1970-01-01
      • 2018-12-13
      相关资源
      最近更新 更多