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