如何将opengl 3.3渲染到SDL2纹理中

How to render opengl 3.3 into an SDL2 Texture?

本文关键字:SDL2 纹理 opengl      更新时间:2023-10-16

我用SDL2制作2D游戏已经有一段时间了,最近我决定用opengl 3.3制作3D游戏。

由于我有很多用纯SDL2制作的c++代码可以在该引擎中重用,我想知道,我如何才能将opengl渲染为SDL_Texture

这个想法是用opengl做三维的东西,把它放在SDL_Texture中,然后用SDL2做二维的东西并渲染。

您必须小心,因为SDL 2还没有明确支持这一点。您可以很容易地践踏SDL设置并依赖的GL状态,以便正确渲染。

然而,SDL_gpu(完全公开:我是作者)确实支持混合2D和3D,尽管您必须移植SDL_Renderer代码的其余部分。

渲染到FBO,使用PBO将像素拉回到主内存,然后将像素上传到SDL_Texture

不过,这并不完全是一条"快速通道",您最好使用OpenGL来完成所有工作。