Skip to content

Commit fc20578

Browse files
committed
vulkan_sdl3: fix setting display ID
1 parent e22cf9d commit fc20578

File tree

1 file changed

+19
-3
lines changed

1 file changed

+19
-3
lines changed

src/video_display/vulkan/vulkan_sdl3.cpp

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -601,7 +601,7 @@ struct command_line_arguments {
601601
bool tearing_permitted = false;
602602
bool validation = false;
603603

604-
int display_idx = 0;
604+
int display_idx = -1;
605605
int x = SDL_WINDOWPOS_UNDEFINED;
606606
int y = SDL_WINDOWPOS_UNDEFINED;
607607

@@ -723,6 +723,21 @@ sdl_set_log_level()
723723
: SDL_LOG_PRIORITY_VERBOSE);
724724
}
725725

726+
SDL_DisplayID
727+
get_display_id_from_idx(int idx)
728+
{
729+
if (idx == -1) {
730+
idx = 0;
731+
}
732+
int count = 0;
733+
SDL_DisplayID *displays = SDL_GetDisplays(&count);
734+
if (idx < count) {
735+
return displays[idx];
736+
}
737+
MSG(ERROR, "Display index %d out of range!\n", idx);
738+
return 0;
739+
}
740+
726741
void* display_vulkan_init(module* parent, const char* fmt, unsigned int flags) {
727742
sdl_set_log_level();
728743
if (flags & DISPLAY_FLAG_AUDIO_ANY) {
@@ -775,8 +790,9 @@ void* display_vulkan_init(module* parent, const char* fmt, unsigned int flags) {
775790
window_title = get_commandline_param("window-title");
776791
}
777792

778-
int x = (args.x == SDL_WINDOWPOS_UNDEFINED ? SDL_WINDOWPOS_CENTERED_DISPLAY(args.display_idx) : args.x);
779-
int y = (args.y == SDL_WINDOWPOS_UNDEFINED ? SDL_WINDOWPOS_CENTERED_DISPLAY(args.display_idx) : args.y);
793+
const SDL_DisplayID display_id = get_display_id_from_idx(args.display_idx);
794+
int x = (args.x == SDL_WINDOWPOS_UNDEFINED ? SDL_WINDOWPOS_CENTERED_DISPLAY(display_id) : args.x);
795+
int y = (args.y == SDL_WINDOWPOS_UNDEFINED ? SDL_WINDOWPOS_CENTERED_DISPLAY(display_id) : args.y);
780796
if(s->width == -1 && s->height == -1){
781797
int display_index = 0;
782798
const SDL_DisplayMode *mode = SDL_GetDesktopDisplayMode(display_index);

0 commit comments

Comments
 (0)