Skip to content

Commit 89dc427

Browse files
committed
Migrate to SDL3.
1 parent dd313de commit 89dc427

File tree

8 files changed

+38
-22
lines changed

8 files changed

+38
-22
lines changed

.github/workflows/ci.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,14 +43,14 @@ jobs:
4343
echo "name=CC::gcc-${{ matrix.version }}" >> $GITHUB_ENV
4444
echo "name=CXX::g++-${{ matrix.version }}" >> $GITHUB_ENV
4545
46-
sudo apt-get install libfreetype-dev libcairo2 libcairo2-dev libsdl2-dev libpng-dev git-lfs libjpeg-turbo8-dev libeigen3-dev
46+
sudo apt-get install libfreetype-dev libcairo2 libcairo2-dev libpng-dev git-lfs libjpeg-turbo8-dev libeigen3-dev libudev-dev libdbus-1-dev libpipewire-0.3-dev libwayland-client0
4747
pip install meson ninja
4848
4949
- name: Install dependencies (macOS)
5050
if: runner.os == 'macOS'
5151
run: |
5252
pip3 install meson ninja
53-
brew install freetype libjpeg-turbo cairo libpng sdl2 pkg-config eigen
53+
brew install freetype libjpeg-turbo cairo libpng sdl3 pkg-config eigen
5454
5555
5656
# ls -ls /Applications/

Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ CXXFLAGS = -Wall -std=c++17 -I include -I subprojects/eigen-3.4.0
1717
LDFLAGS = -L. -L./build/src
1818
LDLIBS = -lpyro
1919

20-
PYRO_CXXFLAGS := -g -Wall `pkg-config --cflags cairo sdl2` -std=c++17 -I include -fPIC
20+
PYRO_CXXFLAGS := -g -Wall `pkg-config --cflags cairo sdl3` -std=c++17 -I include -fPIC
2121
PYRO_LDFLAGS = -shared
22-
LIB := `pkg-config --libs cairo sdl2` -lfreeimage -lstdc++
22+
LIB := `pkg-config --libs cairo sdl3` -lfreeimage -lstdc++
2323
# INC := -I include
2424

2525
ifeq ($(OS), Windows_NT)

include/pyro/sdl.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
#define PYRO_SDL_H
33

44
#include "pyro/pyro.h"
5-
#include <SDL2/SDL.h>
5+
#include <SDL3/SDL.h>
66

77
namespace Pyro
88
{

meson.build

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ freetype_dep = dependency('freetype2')
99
libjpeg_dep = dependency('libjpeg')
1010
libpng_dep = dependency('libpng')
1111
cairo_dep = dependency('cairo')
12-
sdl_dep = dependency('sdl2')
12+
sdl_dep = dependency('sdl3')
1313
eigen_dep = dependency('eigen3')
1414

1515
eigen_dep = subproject('eigen').get_variable('eigen_dep')

src/sdl.cpp

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,12 @@ namespace Pyro
2020

2121
if (!headless)
2222
{
23-
if (SDL_Init(SDL_INIT_VIDEO) != 0)
23+
if (SDL_Init(SDL_INIT_VIDEO))
24+
{
25+
std::cout << "SDL_init was okay" << std::endl;
26+
;
27+
}
28+
else
2429
{
2530
std::cout << "SDL_Init error: " << SDL_GetError() << std::endl;
2631
return 1;
@@ -41,8 +46,6 @@ namespace Pyro
4146
int SDLRunner::open_window()
4247
{
4348
sdl_window = SDL_CreateWindow("Pyro",
44-
SDL_WINDOWPOS_UNDEFINED,
45-
SDL_WINDOWPOS_UNDEFINED,
4649
this->width, this->height,
4750
SDL_WINDOW_OPENGL);
4851

@@ -58,7 +61,7 @@ namespace Pyro
5861

5962
int SDLRunner::create_renderer()
6063
{
61-
sdl_renderer = SDL_CreateRenderer(sdl_window, -1, SDL_RENDERER_ACCELERATED);
64+
sdl_renderer = SDL_CreateRenderer(sdl_window, NULL);
6265
if (sdl_renderer == nullptr)
6366
{
6467
SDL_DestroyWindow(sdl_window);
@@ -91,22 +94,22 @@ namespace Pyro
9194
SDL_UpdateTexture(sdl_texture, NULL, pg->get_data(), this->width * sizeof(uint32_t));
9295
SDL_Event e;
9396
SDL_RenderClear(sdl_renderer);
94-
SDL_RenderCopy(sdl_renderer, sdl_texture, NULL, NULL);
97+
SDL_RenderTexture(sdl_renderer, sdl_texture, NULL, NULL);
9598
SDL_RenderPresent(sdl_renderer);
9699

97100
while (SDL_PollEvent(&e))
98101
{
99102
switch (e.type)
100103
{
101-
case SDL_QUIT:
104+
case SDL_EVENT_QUIT:
102105
this->running = false;
103106
break;
104107

105-
case SDL_KEYDOWN:
108+
case SDL_EVENT_KEY_DOWN:
106109
// std::cout << "Keydown" << std::endl;
107110
this->keypressed = true;
108-
this->key = e.key.keysym.sym;
109-
if (e.key.keysym.sym == SDLK_ESCAPE)
111+
this->key = e.key.key;
112+
if (e.key.mod == SDLK_ESCAPE)
110113
this->running = false;
111114

112115
if (this->keypressed_cb != nullptr)
@@ -115,23 +118,23 @@ namespace Pyro
115118
}
116119
break;
117120

118-
case SDL_KEYUP:
121+
case SDL_EVENT_KEY_UP:
119122
// std::cout << "Keyup" << std::endl;
120123
this->keypressed = false;
121-
this->key = e.key.keysym.sym;
124+
this->key = e.key.key;
122125
break;
123126

124-
case SDL_MOUSEBUTTONDOWN:
127+
case SDL_EVENT_MOUSE_BUTTON_DOWN:
125128
this->mousepressed = true;
126129
this->mousebutton = e.button.button;
127130
break;
128131

129-
case SDL_MOUSEBUTTONUP:
132+
case SDL_EVENT_MOUSE_BUTTON_UP:
130133
this->mousepressed = false;
131134
this->mousebutton = e.button.button;
132135
break;
133136

134-
case SDL_MOUSEMOTION:
137+
case SDL_EVENT_MOUSE_MOTION:
135138
pmousex = mousex;
136139
pmousey = mousey;
137140
mousex = e.motion.x;

subprojects/sdl3.wrap

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
[wrap-file]
2+
directory = SDL3-3.2.4
3+
source_url = https://github.com/libsdl-org/SDL/releases/download/release-3.2.4/SDL3-3.2.4.tar.gz
4+
source_filename = SDL3-3.2.4.tar.gz
5+
source_hash = 2938328317301dfbe30176d79c251733aa5e7ec5c436c800b99ed4da7adcb0f0
6+
patch_filename = sdl3_3.2.4-3_patch.zip
7+
patch_url = https://wrapdb.mesonbuild.com/v2/sdl3_3.2.4-3/get_patch
8+
patch_hash = e79c9a1683ac304f86a35b91bf15435eb5fc6663c28cf73bcc16bb90fe881ccb
9+
source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/sdl3_3.2.4-3/SDL3-3.2.4.tar.gz
10+
wrapdb_version = 3.2.4-3
11+
12+
[provide]
13+
sdl3 = sdl3_dep

tests/meson.build

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ catch2 = subproject('catch2', default_options: 'tests=false')
1717
testexe = executable('unit-tests', test_sources,
1818
include_directories: inc,
1919
link_with: pyro,
20-
dependencies: [catch2.get_variable('catch2_with_main_dep'), eigen_dep],
20+
dependencies: [catch2.get_variable('catch2_with_main_dep'), eigen_dep, sdl_dep],
2121
install: false)
2222

2323

tests/test-runner.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
#include "pyro/pyro.h"
55
#include "pyro/runner.h"
6-
#include <SDL2/SDL_events.h>
6+
#include <sdl3/SDL_events.h>
77

88
using namespace Pyro;
99

0 commit comments

Comments
 (0)