如何只使用SDL编写的游戏OpenGL代码的一部分?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何只使用SDL编写的游戏OpenGL代码的一部分?相关的知识,希望对你有一定的参考价值。

所以,我正在制作一个类似于Vector Runner的游戏。我有一个背景纹理和几个纹理对象都使用SDL实现。我想用glRotate旋转背景。我不希望它移动或任何东西,我只是想对它有不同的看法(类似于第三人称视角)并保持这种方式。由于现在一切都是SDL,我可以只创建background.h和.cpp并在那里实现OpenGL,还是需要在整个代码中使用它,还是有办法使用SDL?

答案

就个人而言,我不会尝试将OpenGL与SDL的2D表面类型代码混合使用。我也可以使用OpenGL实现sprite(更快,更多操作选项)或尽可能使用SDL函数(最简单的选项)或使用软件渲染来旋转背景(非常便携并且都在您的控制之下)。

我想用glRotate旋转背景。我不希望它移动或任何东西,我只是想对它有不同的看法(类似于第三人称视角)并保持这种方式。

如果你想自己做旋转,你可以使用texture mapping techniques,并逐个像素地自己渲染。如果背景不移动,您只需要执行一次并将结果存储在缓冲区中。

SDL还有一个渲染功能,可以选择旋转源图像(没有透视变换选项):https://wiki.libsdl.org/SDL_RenderCopyEx

以上是关于如何只使用SDL编写的游戏OpenGL代码的一部分?的主要内容,如果未能解决你的问题,请参考以下文章

SDL_Renderer opengl 冲突

用于包装 SDL 和 OpenGL 绘图方法的虚拟函数的替代方案

如何在第三方进程中隔离我自己的 OpenGL 调用?

OpenGL 不绘制到 SDL2 窗口

SDL播放器实战

SDL 平台游戏中的 OpenGL 着色器?