From 5375d03ebee3a405ec9ee6b8782b843cbc8939be Mon Sep 17 00:00:00 2001 From: Vadim Lopatin Date: Mon, 28 Apr 2014 16:47:49 +0400 Subject: [PATCH] SDL support --- examples/example1/dub.json | 3 +++ src/dlangui/platforms/sdl/sdlapp.d | 32 ++++++++++++++++++++---------- 2 files changed, 24 insertions(+), 11 deletions(-) diff --git a/examples/example1/dub.json b/examples/example1/dub.json index c9a742bd..0145b497 100644 --- a/examples/example1/dub.json +++ b/examples/example1/dub.json @@ -97,10 +97,13 @@ "../../3rdparty/win32/ws2tcpip.d", "../../3rdparty/win32/wtypes.d" ], + "sourceFiles": [ "src/main.d" ], + "copyFiles-windows": [ + "../../lib/SDL2.dll", "../../lib/FreeImage.dll", "../../lib/libfreetype-6.dll", "../../lib/libpng15.dll", diff --git a/src/dlangui/platforms/sdl/sdlapp.d b/src/dlangui/platforms/sdl/sdlapp.d index 3bed9bb0..51dd0f0b 100644 --- a/src/dlangui/platforms/sdl/sdlapp.d +++ b/src/dlangui/platforms/sdl/sdlapp.d @@ -43,6 +43,7 @@ version(USE_SDL) { Log.d("Creating SDL window"); create(); } + ~this() { Log.d("Destroying window"); if (_renderer) @@ -219,17 +220,26 @@ version(USE_SDL) { bool quit = false; while(true) { redrawWindows(); - - SDL_PollEvent(&event); - //Log.d("Event.type = ", event.type); - if (event.type == SDL_QUIT) { - Log.i("event.type == SDL_QUIT"); - break; - } - - - //SDL_PumpEvents(); - SDL_Delay(10); + //if (SDL_PollEvent(&event)) { + if (SDL_WaitEvent(&event)) { + //Log.d("Event.type = ", event.type); + if (event.type == SDL_QUIT) { + Log.i("event.type == SDL_QUIT"); + break; + } else if (event.type == SDL_WINDOWEVENT) { + switch (event.window.event) { + case SDL_WINDOWEVENT_RESIZED: + Log.d("SDL_WINDOWEVENT_RESIZED win=", event.window.windowID, " pos=", event.window.data1, + ",", event.window.data2); + break; + case SDL_WINDOWEVENT_CLOSE: + Log.d("SDL_WINDOWEVENT_CLOSE win=", event.window.windowID); + break; + default: + break; + } + } + } } Log.i("exiting message loop"); return 0;