notaz.gp2x.de
/
pcsx_rearmed.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Get rid of bit fields in union
[pcsx_rearmed.git]
/
plugins
/
gpulib
/
vout_pl.c
diff --git
a/plugins/gpulib/vout_pl.c
b/plugins/gpulib/vout_pl.c
index
11307e2
..
1c98b55
100644
(file)
--- a/
plugins/gpulib/vout_pl.c
+++ b/
plugins/gpulib/vout_pl.c
@@
-11,7
+11,6
@@
#include <string.h>
#include "gpu.h"
#include <string.h>
#include "gpu.h"
-#include "cspace.h"
#include "../../frontend/plugin_lib.h"
static const struct rearmed_cbs *cbs;
#include "../../frontend/plugin_lib.h"
static const struct rearmed_cbs *cbs;
@@
-32,30
+31,32
@@
static void check_mode_change(int force)
static int old_h;
int w = gpu.screen.hres;
int h = gpu.screen.h;
static int old_h;
int w = gpu.screen.hres;
int h = gpu.screen.h;
+ int w_out = w;
+ int h_out = h;
gpu.state.enhancement_active =
gpu.get_enhancement_bufer != NULL && gpu.state.enhancement_enable
gpu.state.enhancement_active =
gpu.get_enhancement_bufer != NULL && gpu.state.enhancement_enable
- && w <= 512 && h <= 256 && !
gpu.status.rgb24
;
+ && w <= 512 && h <= 256 && !
(gpu.status & PSX_GPU_STATUS_RGB24)
;
if (gpu.state.enhancement_active) {
if (gpu.state.enhancement_active) {
- w *= 2;
- h *= 2;
+ w
_out
*= 2;
+ h
_out
*= 2;
}
// width|rgb24 change?
}
// width|rgb24 change?
- if (force || (gpu.status
.reg
^ old_status) & ((7<<16)|(1<<21)) || h != old_h)
+ if (force || (gpu.status ^ old_status) & ((7<<16)|(1<<21)) || h != old_h)
{
{
- old_status = gpu.status
.reg
;
+ old_status = gpu.status;
old_h = h;
old_h = h;
- cbs->pl_vout_set_mode(w, h,
-
(gpu.status.rgb24 && !cbs->only_16bpp
) ? 24 : 16);
+ cbs->pl_vout_set_mode(w
_out, h_out, w
, h,
+
(gpu.status & PSX_GPU_STATUS_RGB24
) ? 24 : 16);
}
}
void vout_update(void)
{
}
}
void vout_update(void)
{
- int x = gpu.screen.x
& ~1; // alignment needed by blitter
+ int x = gpu.screen.x
;
int y = gpu.screen.y;
int w = gpu.screen.w;
int h = gpu.screen.h;
int y = gpu.screen.y;
int w = gpu.screen.w;
int h = gpu.screen.h;
@@
-72,8
+73,8
@@
void vout_update(void)
if (y + h > vram_h) {
if (y + h - vram_h > h / 2) {
// wrap
if (y + h > vram_h) {
if (y + h - vram_h > h / 2) {
// wrap
- y = 0;
h -= vram_h - y;
h -= vram_h - y;
+ y = 0;
}
else
// clip
}
else
// clip
@@
-82,18
+83,20
@@
void vout_update(void)
vram += y * 1024 + x;
vram += y * 1024 + x;
- cbs->pl_vout_flip(vram, 1024,
gpu.status.rgb24
, w, h);
+ cbs->pl_vout_flip(vram, 1024,
!!(gpu.status & PSX_GPU_STATUS_RGB24)
, w, h);
}
void vout_blank(void)
{
int w = gpu.screen.hres;
int h = gpu.screen.h;
}
void vout_blank(void)
{
int w = gpu.screen.hres;
int h = gpu.screen.h;
+
+ check_mode_change(0);
if (gpu.state.enhancement_active) {
w *= 2;
h *= 2;
}
if (gpu.state.enhancement_active) {
w *= 2;
h *= 2;
}
- cbs->pl_vout_flip(NULL, 1024,
gpu.status.rgb24
, w, h);
+ cbs->pl_vout_flip(NULL, 1024,
!!(gpu.status & PSX_GPU_STATUS_RGB24)
, w, h);
}
long GPUopen(void **unused)
}
long GPUopen(void **unused)
@@
-103,6
+106,7
@@
long GPUopen(void **unused)
cbs->pl_vout_open();
check_mode_change(1);
cbs->pl_vout_open();
check_mode_change(1);
+ vout_update();
return 0;
}
return 0;
}