X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=pcsx_rearmed.git;a=blobdiff_plain;f=plugins%2Fgpulib%2Fvout_pl.c;h=a9437cb145cb5ba9f53589cead83a38e8657070c;hp=958468c90f5d6fb88b637a9e98f7ab770d12c905;hb=HEAD;hpb=2da2fc7676c1fc40d26226a7a4c43728d9a2eedf diff --git a/plugins/gpulib/vout_pl.c b/plugins/gpulib/vout_pl.c index 958468c9..80389a34 100644 --- a/plugins/gpulib/vout_pl.c +++ b/plugins/gpulib/vout_pl.c @@ -29,9 +29,11 @@ static void check_mode_change(int force) { int w = gpu.screen.hres; int h = gpu.screen.vres; - int w_out = w; - int h_out = h; + int w_out, h_out, bpp = 16; + if (gpu.state.screen_centering_type == C_BORDERLESS) + h = gpu.screen.h; + w_out = w, h_out = h; #ifdef RAW_FB_DISPLAY w = w_out = 1024, h = h_out = 512; #endif @@ -43,6 +45,11 @@ static void check_mode_change(int force) w_out *= 2; h_out *= 2; } + if (gpu.status & PSX_GPU_STATUS_RGB24) { + // some asm relies on this alignment + w_out = (w_out + 7) & ~7; + bpp = 24; + } // width|rgb24 change? if (force || (gpu.status ^ gpu.state.status_vo_old) & ((7<<16)|(1<<21)) @@ -52,8 +59,8 @@ static void check_mode_change(int force) gpu.state.w_out_old = w_out; gpu.state.h_out_old = h_out; - cbs->pl_vout_set_mode(w_out, h_out, w, h, - (gpu.status & PSX_GPU_STATUS_RGB24) ? 24 : 16); + if (w_out != 0 && h_out != 0) + cbs->pl_vout_set_mode(w_out, h_out, w, h, bpp); } }