Support using the OpenGL3 renderer with SDL 1.2
This commit is contained in:
parent
9b81f45381
commit
5328426b4b
2 changed files with 54 additions and 0 deletions
|
@ -440,6 +440,8 @@ elseif(BACKEND_PLATFORM MATCHES "SDL2" AND BACKEND_RENDERER MATCHES "SDLTexture"
|
||||||
elseif(BACKEND_PLATFORM MATCHES "SDL2" AND BACKEND_RENDERER MATCHES "SDLSurface")
|
elseif(BACKEND_PLATFORM MATCHES "SDL2" AND BACKEND_RENDERER MATCHES "SDLSurface")
|
||||||
elseif(BACKEND_PLATFORM MATCHES "SDL2" AND BACKEND_RENDERER MATCHES "Software")
|
elseif(BACKEND_PLATFORM MATCHES "SDL2" AND BACKEND_RENDERER MATCHES "Software")
|
||||||
target_sources(CSE2 PRIVATE "src/Backends/Rendering/Window/Software/SDL2.cpp")
|
target_sources(CSE2 PRIVATE "src/Backends/Rendering/Window/Software/SDL2.cpp")
|
||||||
|
elseif(BACKEND_PLATFORM MATCHES "SDL1" AND BACKEND_RENDERER MATCHES "OpenGL3")
|
||||||
|
target_sources(CSE2 PRIVATE "src/Backends/Rendering/Window/OpenGL3/SDL1.cpp")
|
||||||
elseif(BACKEND_PLATFORM MATCHES "SDL1" AND BACKEND_RENDERER MATCHES "Software")
|
elseif(BACKEND_PLATFORM MATCHES "SDL1" AND BACKEND_RENDERER MATCHES "Software")
|
||||||
target_sources(CSE2 PRIVATE "src/Backends/Rendering/Window/Software/SDL1.cpp")
|
target_sources(CSE2 PRIVATE "src/Backends/Rendering/Window/Software/SDL1.cpp")
|
||||||
elseif(BACKEND_PLATFORM MATCHES "GLFW3" AND BACKEND_RENDERER MATCHES "OpenGL3")
|
elseif(BACKEND_PLATFORM MATCHES "GLFW3" AND BACKEND_RENDERER MATCHES "OpenGL3")
|
||||||
|
|
52
src/Backends/Rendering/Window/OpenGL3/SDL1.cpp
Normal file
52
src/Backends/Rendering/Window/OpenGL3/SDL1.cpp
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
#include "../OpenGL.h"
|
||||||
|
|
||||||
|
#include <stddef.h>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
#include <glad/glad.h>
|
||||||
|
#include "SDL.h"
|
||||||
|
|
||||||
|
#include "../../../Misc.h"
|
||||||
|
|
||||||
|
bool WindowBackend_OpenGL_CreateWindow(const char *window_title, int *screen_width, int *screen_height, bool fullscreen)
|
||||||
|
{
|
||||||
|
if (SDL_SetVideoMode(*screen_width, *screen_height, 0, SDL_RESIZABLE | SDL_OPENGL | (fullscreen ? SDL_FULLSCREEN : 0)) != NULL)
|
||||||
|
{
|
||||||
|
SDL_WM_SetCaption(window_title, NULL);
|
||||||
|
|
||||||
|
if (gladLoadGLLoader((GLADloadproc)SDL_GL_GetProcAddress))
|
||||||
|
{
|
||||||
|
// Check if the platform supports OpenGL 3.2
|
||||||
|
if (GLAD_GL_VERSION_3_2)
|
||||||
|
{
|
||||||
|
Backend_PostWindowCreation();
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Backend_ShowMessageBox("Fatal error (OpenGL rendering backend)", "Your system does not support OpenGL 3.2");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Backend_ShowMessageBox("Fatal error (OpenGL rendering backend)", "Couldn't load OpenGL functions");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
std::string error_message = std::string("Could not create window: ") + SDL_GetError();
|
||||||
|
Backend_ShowMessageBox("Fatal error (OpenGL rendering backend)", error_message.c_str());
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void WindowBackend_OpenGL_DestroyWindow(void)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void WindowBackend_OpenGL_Display(void)
|
||||||
|
{
|
||||||
|
SDL_GL_SwapBuffers();
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue