From d7e9d2932e4497711fffa2d649a036b7581e2c89 Mon Sep 17 00:00:00 2001 From: xengineering Date: Fri, 7 Oct 2022 21:18:21 +0200 Subject: Add SDL2 version (X11 only) There seems to be a bug in SDL2. Window creation is successful under Wayland (window pointer not NULL) but there is no window visible. Tested with Sway and Weston. The same implementation works fine under Cinnamon with X11. --- meson.build | 2 ++ sdl2.c | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 sdl2.c diff --git a/meson.build b/meson.build index 9a5f339..205b210 100644 --- a/meson.build +++ b/meson.build @@ -2,5 +2,7 @@ project('LimoX', 'c') gtkdep = dependency('gtk4') strophedep = dependency('libstrophe') sdldep = dependency('sdl') +sdl2dep = dependency('sdl2') executable('limox', ['main.c', 'gtk.c', 'net.c', 'data.c'], dependencies : [gtkdep, strophedep]) executable('limox_sdl', ['main.c', 'sdl.c', 'net.c', 'data.c'], dependencies : [sdldep, strophedep]) +executable('limox_sdl2', ['main.c', 'sdl2.c', 'net.c', 'data.c'], dependencies : [sdl2dep, strophedep]) diff --git a/sdl2.c b/sdl2.c new file mode 100644 index 0000000..bbabd51 --- /dev/null +++ b/sdl2.c @@ -0,0 +1,67 @@ + + +/* mention the SDL2 documentation at http://wiki.libsdl.org/APIByCategory */ + +/* WARNING this seems to be not working on Wayland! */ + + +#include +#include + +#include "net.h" +#include "data.h" + + +void gui_run(void) { + + bool quit = false; + SDL_Event event; + SDL_Window* window; + + // init SDL2 and create window + SDL_Init(SDL_INIT_VIDEO); + window = SDL_CreateWindow("LimoX", + SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 640, 480, + 0 + ); + + // handle failed window creation + if (window == NULL) { + fprintf(stderr, "Failed to create SDL2 window!\n"); + return; + } else { + while (!quit) { + SDL_WaitEvent(&event); + switch (event.type) + { + case SDL_QUIT: + quit = true; + break; + } + } + SDL_DestroyWindow(window); + } + + SDL_Quit(); + +} + +void gui_connected(char* jid, char* password) { + +} + +void gui_disconnected(void) { + +} + +void gui_add_roster_item_widget(roster_item_t* item) { + +} + +void gui_add_chat_widget(chat_t* chat) { + +} + +void gui_add_message_widget(message_t* message, chat_t* chat) { + +} -- cgit v1.2.3-70-g09d2