Fix viewport resize and cleanup code structure of viewport width and height
[mercenary-reloaded.git] / src / libsdl / sdl.c
index b3d78b7..d7e96ce 100644 (file)
@@ -34,6 +34,7 @@ static SDL_Window *gl_window = NULL;
 static SDL_GLContext gl_context = NULL;
 static void (*keyboard_sdl)(int down, enum keycode keycode) = NULL;
 static void (*audio_sdl)(float *data, int len) = NULL;
+static void (*resize_window_sdl)(int width, int height) = NULL;
 
 static void audio_cb(void __attribute__((unused)) *userdata, Uint8 *stream, int len)
 {
@@ -44,12 +45,13 @@ static void audio_cb(void __attribute__((unused)) *userdata, Uint8 *stream, int
        SDL_MixAudio(stream, (Uint8 *)audio_data, len, SDL_MIX_MAXVOLUME);
 }
 
-int init_sdl(const char *progname, int width, int height, int sound_samplerate, int sound_chunk, void (*keyboard)(int down, enum keycode keycode), void (*audio)(float *data, int len), int multisampling, int vbl_sync)
+int init_sdl(const char *progname, int width, int height, int sound_samplerate, int sound_chunk, void (*keyboard)(int down, enum keycode keycode), void (*audio)(float *data, int len), void (*resize_window)(int width, int height), int multisampling, int vbl_sync)
 {
        int rc;
 
        keyboard_sdl = keyboard;
        audio_sdl = audio;
+       resize_window_sdl = resize_window;
 
        /* init SDL library */
        rc = SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO);
@@ -268,7 +270,7 @@ int event_sdl(void)
                        quit = 1;
                if (event.type == SDL_WINDOWEVENT) {
                        if (event.window.event == SDL_WINDOWEVENT_SIZE_CHANGED)
-                               resize_opengl(event.window.data1, event.window.data2);
+                               resize_window_sdl(event.window.data1, event.window.data2);
                }
                if (event.type == SDL_KEYDOWN) {
                        switch (event.key.keysym.sym) {