From 1fe151ee1e1cb39ad3b81fa73bc6968dbda81b97 Mon Sep 17 00:00:00 2001 From: Raimon Zamora Date: Mon, 9 Oct 2023 11:29:17 +0200 Subject: [PATCH] =?UTF-8?q?-=20La=20tecla=20de=20parar=20passa=20a=20ser?= =?UTF-8?q?=20F12=20(en=20compte=20de=20F1).=20-=20[FIX]=20Ja=20no=20inten?= =?UTF-8?q?tem=20recuperar=20la=20posici=C3=B3=20de=20la=20finestra.=20Ara?= =?UTF-8?q?=20reapareix=20centrada.=20-=20[NEW]=20Si=20s'intenta=20ficar?= =?UTF-8?q?=20un=20zoom=20menor=20de=201,=20es=20corregeix=20a=201.=20-=20?= =?UTF-8?q?[NEW]=20Si=20s'intenta=20ficar=20un=20zoom=20major=20que=20el?= =?UTF-8?q?=20tamany=20de=20la=20pantalla,=20redueix=20el=20zoom=20fins=20?= =?UTF-8?q?a=20un=20correcte.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mini.cpp | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/mini.cpp b/mini.cpp index 70c4eda..79a86c6 100644 --- a/mini.cpp +++ b/mini.cpp @@ -28,8 +28,8 @@ uint8_t screen_zoom = 4; bool screen_fullscreen = false; bool screen_cursor = true; -int windowpos_x = SDL_WINDOWPOS_UNDEFINED; -int windowpos_y = SDL_WINDOWPOS_UNDEFINED; +int desktop_width = 0; +int desktop_height = 0; surface_t surfaces[10]; surface_t *screen_surface = &surfaces[0]; @@ -226,14 +226,17 @@ void setmap(uint8_t surface) { } void createDisplay() { - mini_win = SDL_CreateWindow(window_title, windowpos_x, windowpos_y, screen_width*screen_zoom, screen_height*screen_zoom, screen_fullscreen?SDL_WINDOW_FULLSCREEN_DESKTOP:SDL_WINDOW_SHOWN); + if (screen_zoom <= 0) screen_zoom = 1; + while (screen_width*screen_zoom > desktop_width || screen_height*screen_zoom > desktop_height) screen_zoom--; + + mini_win = SDL_CreateWindow(window_title, SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, screen_width*screen_zoom, screen_height*screen_zoom, screen_fullscreen?SDL_WINDOW_FULLSCREEN_DESKTOP:SDL_WINDOW_SHOWN); windowID = SDL_GetWindowID(mini_win); mini_ren = SDL_CreateRenderer(mini_win, -1, 0); //SDL_CreateWindowAndRenderer(512,512,0,&mini_win,&mini_ren); SDL_RenderSetLogicalSize(mini_ren, screen_width, screen_height); SDL_ShowCursor(screen_cursor?SDL_ENABLE:SDL_DISABLE); mini_bak = SDL_CreateTexture(mini_ren, SDL_PIXELFORMAT_ARGB8888, SDL_TEXTUREACCESS_STREAMING, screen_width, screen_height); - SDL_GetWindowPosition(mini_win, &windowpos_x, &windowpos_y); + //SDL_GetWindowPosition(mini_win, &windowpos_x, &windowpos_y); } void destroyDisplay() { @@ -288,6 +291,16 @@ int main(int argc,char*argv[]){ setdest(newsurf(screen_width, screen_height)); SDL_Init(SDL_INIT_EVERYTHING); + + SDL_DisplayMode dm; + if (SDL_GetDesktopDisplayMode(0, &dm) != 0) + { + SDL_Log("SDL_GetDesktopDisplayMode failed: %s", SDL_GetError()); + return 1; + } + desktop_width = dm.w; + desktop_height = dm.h; + createDisplay(); initGamePad(); @@ -329,7 +342,7 @@ int main(int argc,char*argv[]){ } */ #ifdef DEBUG - if (mini_eve.key.keysym.scancode == SDL_SCANCODE_F1) { + if (mini_eve.key.keysym.scancode == SDL_SCANCODE_F12) { if (lua_is_playing()) { lua_quit(); quitaudio(); @@ -355,13 +368,13 @@ int main(int argc,char*argv[]){ if (mini_eve.type == SDL_CONTROLLERBUTTONDOWN) { pad_just_pressed = mini_eve.cbutton.button; } - if ( (mini_eve.type == SDL_WINDOWEVENT) && + /*if ( (mini_eve.type == SDL_WINDOWEVENT) && (mini_eve.window.windowID == windowID) && (mini_eve.window.event == SDL_WINDOWEVENT_MOVED) ) { windowpos_x = mini_eve.window.data1-4; windowpos_y = mini_eve.window.data2-36; //SDL_GetWindowPosition(mini_win, &windowpos_x, &windowpos_y); - } + }*/ } keys = SDL_GetKeyboardState(NULL); mouse_buttons = SDL_GetMouseState(&mouse_x, &mouse_y);