From 2f39d318746f1ca6173a10959a926fabd3afe56f Mon Sep 17 00:00:00 2001 From: a dinosaur Date: Sun, 10 Mar 2024 14:59:19 +1100 Subject: [PATCH] sdl3 --- CMakeLists.txt | 12 ++++++++++-- Lesson10.cpp | 27 ++++++++++----------------- 2 files changed, 20 insertions(+), 19 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 257d719..4e96107 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,9 +3,17 @@ project(Lesson10 LANGUAGES CXX) set(CMAKE_CXX_STANDARD 98) -find_package(SDL2 REQUIRED) +find_package(SDL3 REQUIRED CONFIG) find_package(OpenGL REQUIRED) add_executable(Lesson10 Lesson10.cpp) -target_link_libraries(Lesson10 SDL2::SDL2 OpenGL::GL) +set_property(TARGET Lesson10 PROPERTY CXX_STANDARD 98) +target_link_libraries(Lesson10 SDL3::SDL3 OpenGL::GL) target_compile_options(Lesson10 PRIVATE -Wall -Wextra -pedantic) + +if (CMAKE_SYSTEM_NAME STREQUAL "Darwin") + get_property(SDL3_IMPORTED_LOCATION TARGET SDL3::SDL3 PROPERTY IMPORTED_LOCATION) + if (SDL3_IMPORTED_LOCATION MATCHES "^/Library/Frameworks/") + target_link_options(Lesson10 PRIVATE -Wl,-rpath,/Library/Frameworks) + endif() +endif() diff --git a/Lesson10.cpp b/Lesson10.cpp index bfcf6af..ef944dc 100644 --- a/Lesson10.cpp +++ b/Lesson10.cpp @@ -9,6 +9,7 @@ #include // Math Library Header File #include // Header File For Standard Input/Output #include +#include #include // Header File For The OpenGL32 Library #ifdef __APPLE__ #include // Header File For The GLu32 Library @@ -171,7 +172,7 @@ int LoadGLTextures() // Load Bitmaps And Conv glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR_MIPMAP_NEAREST); gluBuild2DMipmaps(GL_TEXTURE_2D, 3, TextureImage->w, TextureImage->h, GL_BGR, GL_UNSIGNED_BYTE, TextureImage->pixels); } - SDL_FreeSurface(TextureImage); // Free The Image Structure + SDL_DestroySurface(TextureImage); // Free The Image Structure return Status; // Return The Status } @@ -272,7 +273,7 @@ GLvoid KillGLWindow(GLvoid) // Properly Kill The Window if (fullscreen) // Are We In Fullscreen Mode? { SDL_SetWindowFullscreen(hWnd, 0); // If So Switch Back To The Desktop - SDL_ShowCursor(SDL_ENABLE); // Show Mouse Pointer + SDL_ShowCursor(); // Show Mouse Pointer } if (hRC) // Do We Have A Rendering Context? @@ -311,7 +312,6 @@ bool CreateGLWindow(char* title, int width, int height, int bits, bool fullscree // Create The Window if (!(hWnd = SDL_CreateWindow(title, - SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, // Window Position WindowRect.w, // Window Width WindowRect.h, // Window Height SDL_WINDOW_OPENGL | SDL_WINDOW_RESIZABLE))) @@ -323,7 +323,7 @@ bool CreateGLWindow(char* title, int width, int height, int bits, bool fullscree if (fullscreen) // Attempt Fullscreen Mode? { - if (SDL_SetWindowFullscreen(hWnd, SDL_WINDOW_FULLSCREEN_DESKTOP) < 0) // Try To Set Selected Mode And Get Results. + if (SDL_SetWindowFullscreen(hWnd, SDL_TRUE) < 0) // Try To Set Selected Mode And Get Results. { // If The Mode Fails, Offer Two Options. Quit Or Use Windowed Mode. const SDL_MessageBoxData msgbox = @@ -400,29 +400,22 @@ void WndProc(SDL_Event* uMsg) { switch (uMsg->type) // Check For Windows Messages { - case SDL_KEYDOWN: // Is A Key Being Held Down? + case SDL_EVENT_KEY_DOWN: // Is A Key Being Held Down? { keys[uMsg->key.keysym.scancode] = true; // If So, Mark It As TRUE break; // Jump Back } - case SDL_KEYUP: // Has A Key Been Released? + case SDL_EVENT_KEY_UP: // Has A Key Been Released? { keys[uMsg->key.keysym.scancode] = false; // If So, Mark It As FALSE break; // Jump Back } - case SDL_WINDOWEVENT: + case SDL_EVENT_WINDOW_PIXEL_SIZE_CHANGED: // Resize The OpenGL Window { - switch (uMsg->window.event) - { - case SDL_WINDOWEVENT_SIZE_CHANGED: // Resize The OpenGL Window - { - ReSizeGLScene(uMsg->window.data1,uMsg->window.data2); // LoWord=Width, HiWord=Height - break; // Jump Back - } - } - break; + ReSizeGLScene(uMsg->window.data1,uMsg->window.data2); // LoWord=Width, HiWord=Height + break; // Jump Back } } } @@ -462,7 +455,7 @@ int main(int argc, char* argv[]) { if (SDL_PollEvent(&msg) > 0) // Is There A Message Waiting? { - if (msg.type==SDL_QUIT) // Have We Received A Quit Message? + if (msg.type==SDL_EVENT_QUIT) // Have We Received A Quit Message? { done=true; // If So done=TRUE }