Skip to content

Commit 713d6e7

Browse files
committed
sdl3
1 parent 436ca86 commit 713d6e7

2 files changed

Lines changed: 18 additions & 23 deletions

File tree

CMakeLists.txt

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,11 @@ declare_library(gbemu-core src)
2424
# endif()
2525

2626
# SDL target
27-
find_package(SDL2)
27+
find_package(SDL3 REQUIRED CONFIG REQUIRED COMPONENTS SDL3)
2828

29-
if (SDL2_FOUND)
29+
if (SDL3_FOUND)
3030
declare_executable(gbemu platforms/sdl)
31-
include_directories(SYSTEM ${SDL2_INCLUDE_DIRS})
32-
target_link_libraries(gbemu gbemu-core ${SDL2_LIBRARIES})
31+
target_link_libraries(gbemu PRIVATE gbemu-core PRIVATE SDL3::SDL3)
3332
endif()
3433

3534
# Test target

platforms/sdl/main.cc

Lines changed: 15 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#include "../../src/gameboy_prelude.h"
22
#include "../cli/cli.h"
33

4-
#include <SDL.h>
4+
#include <SDL3/SDL.h>
55

66
#include <fstream>
77
#include <iterator>
@@ -28,13 +28,13 @@ static std::optional<GbButton> get_gb_button(int keyCode) {
2828
case SDLK_DOWN: return GbButton::Down;
2929
case SDLK_LEFT: return GbButton::Left;
3030
case SDLK_RIGHT: return GbButton::Right;
31-
case SDLK_x: return GbButton::A;
32-
case SDLK_z: return GbButton::B;
31+
case SDLK_X: return GbButton::A;
32+
case SDLK_Z: return GbButton::B;
3333
case SDLK_BACKSPACE: return GbButton::Select;
3434
case SDLK_RETURN: return GbButton::Start;
35-
case SDLK_b: gameboy->debug_toggle_background(); return {};
36-
case SDLK_s: gameboy->debug_toggle_sprites(); return {};
37-
case SDLK_w: gameboy->debug_toggle_window(); return {};
35+
case SDLK_B: gameboy->debug_toggle_background(); return {};
36+
case SDLK_S: gameboy->debug_toggle_sprites(); return {};
37+
case SDLK_W: gameboy->debug_toggle_window(); return {};
3838
default: return {};
3939
}
4040
}
@@ -113,24 +113,22 @@ static void process_events() {
113113

114114
while (SDL_PollEvent(&event)) {
115115
switch (event.type) {
116-
case SDL_KEYDOWN:
116+
case SDL_EVENT_KEY_DOWN:
117117
if (event.key.repeat == true) { break; }
118-
if (auto button_pressed = get_gb_button(event.key.keysym.sym); button_pressed) {
118+
if (auto button_pressed = get_gb_button(event.key.key); button_pressed) {
119119
gameboy->button_pressed(*button_pressed);
120120
}
121121
break;
122-
case SDL_KEYUP:
122+
case SDL_EVENT_KEY_UP:
123123
if (event.key.repeat == true) { break; }
124-
if (auto button_released = get_gb_button(event.key.keysym.sym); button_released) {
124+
if (auto button_released = get_gb_button(event.key.key); button_released) {
125125
gameboy->button_released(*button_released);
126126
}
127127
break;
128-
case SDL_WINDOWEVENT:
129-
if (event.window.event == SDL_WINDOWEVENT_CLOSE) {
130-
should_exit = true;
131-
}
128+
case SDL_EVENT_WINDOW_CLOSE_REQUESTED:
129+
should_exit = true;
132130
break;
133-
case SDL_QUIT:
131+
case SDL_EVENT_QUIT:
134132
should_exit = true;
135133
break;
136134
}
@@ -150,7 +148,7 @@ static void draw(const FrameBuffer& buffer) {
150148
set_pixels(pixels, buffer);
151149
SDL_UnlockTexture(gb_screen_texture);
152150

153-
SDL_RenderCopy(renderer, gb_screen_texture, nullptr, nullptr);
151+
SDL_RenderTexture(renderer, gb_screen_texture, nullptr, nullptr);
154152
SDL_RenderPresent(renderer);
155153
}
156154

@@ -165,8 +163,6 @@ int main(int argc, char* argv[]) {
165163

166164
window = SDL_CreateWindow(
167165
"gbemu",
168-
SDL_WINDOWPOS_UNDEFINED,
169-
SDL_WINDOWPOS_UNDEFINED,
170166
width,
171167
height,
172168
SDL_WINDOW_OPENGL
@@ -176,7 +172,7 @@ int main(int argc, char* argv[]) {
176172
fatal_error("Failed to initialise SDL");
177173
}
178174

179-
renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);
175+
renderer = SDL_CreateRenderer(window, nullptr);
180176

181177
gb_screen_texture = SDL_CreateTexture(
182178
renderer,

0 commit comments

Comments
 (0)