【问题标题】:How to use SDL2 software render with OpenGL?如何在 OpenGL 中使用 SDL2 软件渲染?
【发布时间】:2019-11-06 14:57:04
【问题描述】:

我正在创建一个 3D 游戏,我想知道如何混合 SDL2 软件(表面)渲染和 OpenGL。我尝试使用此代码呈现简单的文本,但它不起作用。

glClearColor(0,0,1,1);
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
SDL_BlitSurface(surf,0,dest,0);
SDL_GL_SwapWindow(win);

有什么问题?

【问题讨论】:

  • 您是在谈论通过SDL_GetWindowSurface()SDL_UpdateWindowSurface() 在使用SDL_WINDOW_OPENGL 标志创建的SDL_Window 上更新窗口表面吗?或者只是使用随机的非窗口表面?
  • 我正在通过 SDL_UpdateWindowSurface 在使用 SDL_WINDOW_OPENGL FLAG 创建的 SDL_Window 上更新窗口表面。
  • 没有什么能阻止您在自定义表面上使用SDL_CreateSoftwareRenderer,然后将此表面提供给 opengl。

标签: c++ sdl-2 opengl-3


【解决方案1】:

我正在通过SDL_Window 上的SDL_UpdateWindowSurface 更新窗口表面,使用SDL_WINDOW_OPENGL 标志创建

那是specifically prohibited by the API:

您不能将此 [SDL_GetWindowSurface] 与 3D 或此窗口上的渲染 API 结合使用。

【讨论】:

    最近更新 更多