aboutsummaryrefslogtreecommitdiff
path: root/plugins/gpulib
diff options
context:
space:
mode:
authornotaz2012-10-22 01:42:56 +0300
committernotaz2012-10-24 01:10:16 +0300
commit7956599fa5f666016f71870d9889748c97839041 (patch)
treec2a354d15c23f335a0091665488a14f45071ddb0 /plugins/gpulib
parentc111e8f8fb8a0d3bd7b05c743a48d942e107cc79 (diff)
downloadpcsx_rearmed-7956599fa5f666016f71870d9889748c97839041.tar.gz
pcsx_rearmed-7956599fa5f666016f71870d9889748c97839041.tar.bz2
pcsx_rearmed-7956599fa5f666016f71870d9889748c97839041.zip
psx_gpu: select buffers differently
this handles weird drawing areas better
Diffstat (limited to 'plugins/gpulib')
-rw-r--r--plugins/gpulib/vout_pl.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/plugins/gpulib/vout_pl.c b/plugins/gpulib/vout_pl.c
index 2116422..6e2764c 100644
--- a/plugins/gpulib/vout_pl.c
+++ b/plugins/gpulib/vout_pl.c
@@ -130,11 +130,15 @@ void vout_update(void)
void vout_blank(void)
{
- gpu.state.enhancement_active = 0;
- check_mode_change();
if (cbs->pl_vout_raw_flip == NULL) {
+ int w = gpu.screen.hres;
+ int h = gpu.screen.h;
int bytespp = gpu.status.rgb24 ? 3 : 2;
- memset(screen_buf, 0, gpu.screen.hres * gpu.screen.h * bytespp);
+ if (gpu.state.enhancement_active) {
+ w *= 2;
+ h *= 2;
+ }
+ memset(screen_buf, 0, w * h * bytespp);
screen_buf = cbs->pl_vout_flip();
}
}