SDL2将场景绘制到纹理。像SFML

时间:2017-09-11 11:52:10

标签: c++ opengl sfml sdl-2 render-to-texture

我一直在使用SFML + ImGui开发2D引擎。

Here you can see an image:

使用ImGui渲染编辑器,场景窗口为sf::RenderTexture,我绘制GameObjects然后转换为ImGui::Image以在编辑器中渲染它。

现在我需要在今年的学士学位中创建一个3D引擎,但是使用SDL2 + ImGui,我想重新创建我用2D引擎做的事情。

我设法像使用ImGui附带的Example一样在2D引擎中渲染编辑器。

3D Editor preview

但我不知道如何在SDL2中创建等效的sf::RenderTexture,因此我可以在那里绘制3D场景并将其转换为ImGui::Image以在编辑器中显示它。 / p>

如果能提供代码会更好。如果您希望我提供任何具体代码,请告诉我。

谢谢!

1 个答案:

答案 0 :(得分:0)

认为你正在寻找这样的东西:

// Create a render texture
SDL_Texture *target = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_RGBA8888, SDL_TEXTUREACCESS_TARGET, width, height);

// Activate the render texture
SDL_SetRenderTarget(renderer, target);

// (Do your rendering here)

// Disable the render texture
SDL_SetRenderTarget(renderer, NULL);

// (Use the render texture)