Bring in a simple SDL2 demo for completeness. It's running in a main.cpp to test SDL2 in C++.

master
Zed A. Shaw 5 months ago
parent dfbae6043b
commit b4ff44788a
  1. 2
      README.md
  2. 36
      sdl2demo/main.cpp
  3. 11
      sdl2demo/meson.build
  4. 5
      sdl2demo/setup.ps1
  5. 0
      sfmldemo/main.cpp
  6. 6
      sfmldemo/meson.build

@ -18,7 +18,7 @@ To get this working the rough (ROUGH) steps are:
2. Run setup.ps1
3. `meson compile -C builddir`
4. `meson install -C builddir` -- Careful with this, it might install stuff in unwanted areas. On my computer it put them in `C:\` but I have to read the instructions on how to set the install location.
5. `./builddir/sfmlprog` -- That should run it and you see a window with ImGUI's demo panel.
5. `./builddir/sfmldemo` -- That should run it and you see a window with ImGUI's demo panel.
I'll have more extensive instructions in a later blog post, but if you have time try this out and let me know how it went at help@learncodethehardway.com. Please let me know if you tried a different compiler, Windows version, etc. If you're on OSX or Linux it should work the same but Linux people might want to use their package manager instead.

@ -0,0 +1,36 @@
#include "SDL.h"
int main(int argc, char *argv[])
{
SDL_Window *window;
SDL_Renderer *renderer;
SDL_Surface *surface;
SDL_Event event;
if (SDL_Init(SDL_INIT_VIDEO) < 0) {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't initialize SDL: %s", SDL_GetError());
return 3;
}
if (SDL_CreateWindowAndRenderer(1920, 1080, SDL_WINDOW_RESIZABLE, &window, &renderer)) {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't create window and renderer: %s", SDL_GetError());
return 3;
}
while (1) {
SDL_PollEvent(&event);
if (event.type == SDL_QUIT) {
break;
}
SDL_SetRenderDrawColor(renderer, 0x00, 0x00, 0x00, 0x00);
SDL_RenderClear(renderer);
SDL_RenderPresent(renderer);
}
SDL_DestroyRenderer(renderer);
SDL_DestroyWindow(window);
SDL_Quit();
return 0;
}

@ -0,0 +1,11 @@
project('sdl2demo', 'cpp',
default_options: [
'cpp_std=c++17',
])
sdl2_dep = dependency('sdl2')
imgui_dep = dependency('imgui')
executable('sdl2demo', 'main.cpp',
win_subsystem: 'windows',
dependencies: [sdl2_dep, imgui_dep])

@ -0,0 +1,5 @@
mkdir builddir
mkdir subprojects
meson wrap install imgui
meson wrap install sdl2
meson setup builddir

@ -1,9 +1,11 @@
project('sfmldemo', 'cpp',
default_options: ['cpp_std=c++17'])
default_options: [
'cpp_std=c++17',
])
sfml_dep = dependency('sfml')
imgui_dep = dependency('imgui-sfml')
executable('sfmlprog', 'sfmlprog.cpp',
executable('sfmldemo', 'main.cpp',
win_subsystem: 'windows',
dependencies: [sfml_dep, imgui_dep])

Loading…
Cancel
Save