SDL2:如何同时拥有 SDL2 菜单和 OpenGL 上下文

SDL2: how to have both a SDL2 Menu and an OpenGL context?

本文关键字:SDL2 OpenGL 上下文 菜单 拥有 何同时      更新时间:2023-10-16

我正在尝试设计一个 SDL2 应用程序,该应用程序有一个主菜单(使用几个 SDL2 纹理创建)和几个选项。

每当单击其中一个选项时,都应该出现一个 OpenGL 上下文,要么替换当前窗口,要么创建一个新窗口(并隐藏具有主菜单的当前窗口)。稍后,在事件(例如,按键盘键)之后,菜单应再次出现。

问题是:每当我在具有主菜单的SDL_Window对象中创建 OpenGL 上下文时,以后似乎无法恢复菜单。它不会被渲染。

问题是:是否可以在同一窗口中同时包含 sdl 纹理元素和 opengl 上下文?当然,不是同时:我想一次使用其中一个,用另一个替换一个。

如果答案是肯定的,我该如何实现?

经过一番研究,我发现这实际上是不可能的。从 SDL 中初始化 OpenGL 后,您将无法再使用任何 SDL 绘图功能:您要么必须坚持对所有菜单使用 OpenGL,要么只对它们使用 SDL 一次(=在初始化 OpenGL 之前)。

因此,SDL 实际上只负责事件。