Drawing 2D stuff with SDL_Renderer and OpenGL stuff with SDL_GLContext

前端 未结 2 1516
悲&欢浪女
悲&欢浪女 2020-12-07 03:31

I have been learning about SDL 2D programming for a while and now I wanted to create a program using SDL and OpenGL combined. I set it up like this:

SDL_Init         


        
相关标签:
2条回答
  • 2020-12-07 03:49

    SDL uses OpenGL (or in some cases Direct3D) and OpenGL has internal state which affects the GL calls in your program. The current version of SDL does not clearly indicate which states it changes or depends upon for any call and it does not include functions to reset to a known state. That means you should not mix SDL_Renderer with OpenGL yet.

    However, if you really want this functionality now, you can try SDL_gpu (note: I'm the author). It does support mixing with OpenGL calls and custom shaders. You would want to specify which version of the OpenGL API you need (e.g. with GPU_InitRenderer(GPU_RENDERER_OPENGL_1, ...)) and reset the GL state that SDL_gpu uses each frame (GPU_ResetRendererState()). Check out the 3d demo in the SDL_gpu source repository for more.

    https://github.com/grimfang4/sdl-gpu/blob/master/demos/3d/main.c

    0 讨论(0)
  • 2020-12-07 03:54

    You can render to an SDL_Surface with SDL, and then convert it to a texture & upload it to the GPU using OpenGL.

    0 讨论(0)
提交回复
热议问题