X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fscreens.c;h=a5d9d45fd62053da4df73f4d68912e6add29bdff;hb=c14b56eb259bfe5ec5e81544d8d3f526723b1c3f;hp=9981a17d18d30d9e0f2ea94704b4a617d6ee980c;hpb=9151b056647ea2d66aa9836ac8051f58fd43bc2c;p=rocksndiamonds.git diff --git a/src/screens.c b/src/screens.c index 9981a17d..a5d9d45f 100644 --- a/src/screens.c +++ b/src/screens.c @@ -4,7 +4,7 @@ // (c) 1995-2014 by Artsoft Entertainment // Holger Schemel // info@artsoft.org -// http://www.artsoft.org/ +// https://www.artsoft.org/ // ---------------------------------------------------------------------------- // screens.c // ============================================================================ @@ -2428,6 +2428,9 @@ static void HandleMenuScreen(int mx, int my, int dx, int dy, int button, static int num_page_entries_all_last[NUM_SPECIAL_GFX_ARGS][MAX_MENU_MODES]; static int choice_stores[NUM_SPECIAL_GFX_ARGS][MAX_MENU_MODES]; static int first_entry_stores[NUM_SPECIAL_GFX_ARGS][MAX_MENU_MODES]; + boolean has_scrollbar = screen_gadget[SCREEN_CTRL_ID_SCROLL_VERTICAL]->mapped; + int mx_scrollbar = screen_gadget[SCREEN_CTRL_ID_SCROLL_VERTICAL]->x; + int mx_right_border = (has_scrollbar ? mx_scrollbar : SX + SXSIZE); int *num_page_entries_last = num_page_entries_all_last[game_status]; int *choice_store = choice_stores[game_status]; int *first_entry_store = first_entry_stores[game_status]; @@ -2649,7 +2652,7 @@ static void HandleMenuScreen(int mx, int my, int dx, int dy, int button, if (!anyScrollbarGadgetActive() && IN_VIS_MENU(x, y) && - mx < screen_gadget[SCREEN_CTRL_ID_SCROLL_VERTICAL]->x && + mx < mx_right_border && y >= 0 && y < num_page_entries) { if (button) @@ -3681,7 +3684,9 @@ static void DrawInfoScreen_Version(void) } DrawTextF(xstart1, ystart, font_head, "Platform"); - DrawTextF(xstart2, ystart, font_text, PLATFORM_STRING); + DrawTextF(xstart2, ystart, font_text, "%s (%s)", + PLATFORM_STRING, + PLATFORM_XX_BIT_STRING); ystart += ystep_line; DrawTextF(xstart1, ystart, font_head, "Target"); @@ -3759,16 +3764,26 @@ static void DrawInfoScreen_Version(void) DrawTextF(xstart3, ystart, font_head, "Used"); ystart += ystep_head; - driver_name = getStringCopyNStatic(SDL_GetVideoDriver(0), driver_name_len); + driver_name = + getStringCopyNStatic(SDLGetRendererName(), driver_name_len); - DrawTextF(xstart1, ystart, font_text, "SDL_VideoDriver"); + DrawTextF(xstart1, ystart, font_text, "Render Driver"); + DrawTextF(xstart2, ystart, font_text, "%s", setup.system.sdl_renderdriver); + DrawTextF(xstart3, ystart, font_text, "%s", driver_name); + ystart += ystep_line; + + driver_name = + getStringCopyNStatic(SDL_GetCurrentVideoDriver(), driver_name_len); + + DrawTextF(xstart1, ystart, font_text, "Video Driver"); DrawTextF(xstart2, ystart, font_text, "%s", setup.system.sdl_videodriver); DrawTextF(xstart3, ystart, font_text, "%s", driver_name); ystart += ystep_line; - driver_name = getStringCopyNStatic(SDL_GetAudioDriver(0), driver_name_len); + driver_name = + getStringCopyNStatic(SDL_GetCurrentAudioDriver(), driver_name_len); - DrawTextF(xstart1, ystart, font_text, "SDL_AudioDriver"); + DrawTextF(xstart1, ystart, font_text, "Audio Driver"); DrawTextF(xstart2, ystart, font_text, "%s", setup.system.sdl_audiodriver); DrawTextF(xstart3, ystart, font_text, "%s", driver_name); @@ -4203,6 +4218,9 @@ static void HandleChooseTree(int mx, int my, int dx, int dy, int button, TreeInfo **ti_ptr) { TreeInfo *ti = *ti_ptr; + boolean has_scrollbar = screen_gadget[SCREEN_CTRL_ID_SCROLL_VERTICAL]->mapped; + int mx_scrollbar = screen_gadget[SCREEN_CTRL_ID_SCROLL_VERTICAL]->x; + int mx_right_border = (has_scrollbar ? mx_scrollbar : SX + SXSIZE); int x = 0; int y = ti->cl_cursor; int step = (button == 1 ? 1 : button == 2 ? 5 : 10); @@ -4397,7 +4415,7 @@ static void HandleChooseTree(int mx, int my, int dx, int dy, int button, if (!anyScrollbarGadgetActive() && IN_VIS_MENU(x, y) && - mx < screen_gadget[SCREEN_CTRL_ID_SCROLL_VERTICAL]->x && + mx < mx_right_border && y >= 0 && y < num_page_entries) { if (button) @@ -5284,13 +5302,21 @@ static void execSetupGraphics(void) if (setup_mode == SETUP_MODE_CHOOSE_WINDOW_SIZE) execSetupGraphics_setWindowSizes(FALSE); + // update "setup.vsync_mode" from list selection + // (in this case, vsync mode was changed on setup screen) + if (setup_mode == SETUP_MODE_CHOOSE_VSYNC) + execSetupGraphics_setVsyncModes(FALSE); + // update list selection from "setup.window_scaling_percent" // (window scaling may have changed by resizing the window) execSetupGraphics_setWindowSizes(TRUE); + // update list selection from "setup.vsync_mode" + // (vsync_mode may have changed by re-creating the renderer) + execSetupGraphics_setVsyncModes(TRUE); + execSetupGraphics_setScalingTypes(); execSetupGraphics_setRenderingModes(); - execSetupGraphics_setVsyncModes(FALSE); setup_mode = SETUP_MODE_GRAPHICS; @@ -5311,7 +5337,7 @@ static void execSetupGraphics(void) SDLSetScreenRenderingMode(setup.screen_rendering_mode); // screen vsync mode may have changed at this point - SDLSetScreenVsyncMode(setup.vsync_mode); + ChangeVsyncModeIfNeeded(); } static void execSetupChooseWindowSize(void) @@ -7986,6 +8012,8 @@ static boolean ConfigureVirtualButtonsMain(void) overlay.grid_button_highlight = grid_button[step_nr]; + UnmapAllGadgets(); + FadeSetEnterMenu(); FadeOut(REDRAW_FIELD);