как использовать функции opengl в sdl2?
Всем привет. Я подключил SDL2 к Visual Studio 2022, чтобы сделать окно и работать с openGl. Я подключаю библиотеки SDL_opengl.h, gl/gl.h, gl/glu.h, но функции openGl вызывают ошибку, пишет ссылка на неразрешенный внешний символ. Подскажите как мне подключить функции openGL в SDL?
#include <cstdio>
#include <SDL.h>
#include <SDL_opengl.h>
#include <gl/gl.h>
#include <gl/glu.h>
#include <cstdlib>
int main(int argc, char* args[])
{
if (SDL_Init(SDL_INIT_VIDEO) < 0) {
exit(EXIT_FAILURE);
}
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_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 1);
SDL_Window* window = SDL_CreateWindow("Clock",
100,
100,
600,
600,
SDL_WINDOW_OPENGL);
if (window == nullptr) {
exit(EXIT_FAILURE);
}
bool gQuit = false;
while (!gQuit) {
SDL_Event e;
while (SDL_PollEvent(&e) != 0) {
if (e.type == SDL_QUIT) {
gQuit = true;
}
// здесь вызывается ошибка
// ссылка на неразрешенный внешний символ __imp_glClearColor в функции SDL_main.
glClearColor(0, 0, 0, 1);
glClear(GL_COLOR_BUFFER_BIT);
// Обновление и рисование сцены
//UpdateCurrentScene();
//DrawCurrentScene();
// В конце - вывод нарисованного кадра в окно на экране
SDL_GL_SwapWindow(window);
}
}
SDL_DestroyWindow(window);
SDL_Quit();
return 0;
}
Источник: Stack Overflow на русском