在 macOS 上使用 SDL2 创建 OpenGL 上下文

问题描述 投票:0回答:1

如何在 macOS 上使用 SDL2 创建 OpenGL 上下文,而不合并任何外部库(如 GLAD 或 GLEW),仅依赖 SDL?

我希望简单地使用 SDL2 打开一个 OpenGL 窗口,将其作为进一步图形开发的起点。

opengl sdl
1个回答
0
投票

首先,您需要将

Command Line Tools
安装到您的系统上。这可以通过在终端中执行
xcode-select --install
来完成。这将安装执行特定命令所需的一些基本依赖项。如果您尚未安装 SDL2,您还需要安装并确保它位于您的
~/Library/Frameworks
文件夹中。

完成这些先决条件后,您就可以建立 OpenGL 上下文了。然而,值得注意的是,Apple 几年前就弃用了 OpenGL。因此,您只能使用较旧的受支持版本的 OpenGL,特别是版本 4.1 和 3.2。

要创建 OpenGL 上下文,请在项目中包含以下库:

OpenGL/gl3.h
SDL.h
SDL_openGL.h
。这些将确保您拥有正确的依赖项来打开 OpenGL 窗口。

下面是我在

c++
中编写的用于初始化 OpenGL 窗口的基本程序。这个示例应该可以帮助您开始您的项目:

#include <OpenGL/gl3.h>
#include <SDL.h>
#include <SDL_opengl.h>

int main(int argc, char* argv[]) {
    SDL_Init(SDL_INIT_VIDEO);

    SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 4);
    SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 1);
    SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE);

    SDL_Window* window = SDL_CreateWindow("OpenGL Window", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 800, 600, SDL_WINDOW_OPENGL);
    SDL_GLContext context = SDL_GL_CreateContext(window);

    bool running = true;
    SDL_Event event;
    while (running) {
        while (SDL_PollEvent(&event)) {
            if (event.type == SDL_QUIT) {
                running = false;
            }
        }

        glClear(GL_COLOR_BUFFER_BIT);
        SDL_GL_SwapWindow(window);
    }

    SDL_GL_DeleteContext(context);
    SDL_DestroyWindow(window);
    SDL_Quit();

    return 0;
}

祝你好运!

© www.soinside.com 2019 - 2024. All rights reserved.