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
frontend: remove src alignment requirements in asm
[pcsx_rearmed.git]
/
plugins
/
gpu-gles
/
gpulib_if.c
diff --git
a/plugins/gpu-gles/gpulib_if.c
b/plugins/gpu-gles/gpulib_if.c
index
c669b63
..
1f4a23d
100644
(file)
--- a/
plugins/gpu-gles/gpulib_if.c
+++ b/
plugins/gpu-gles/gpulib_if.c
@@
-479,10
+479,15
@@
switch((gdata>>24)&0xff)
static int is_opened;
static int is_opened;
-
int renderer_init(void
)
+
static void set_vram(void *vram
)
{
{
- psxVub=
(void *)gpu.
vram;
+ psxVub=vram;
psxVuw=(unsigned short *)psxVub;
psxVuw=(unsigned short *)psxVub;
+}
+
+int renderer_init(void)
+{
+ set_vram(gpu.vram);
PSXDisplay.RGB24 = FALSE; // init some stuff
PSXDisplay.Interlaced = FALSE;
PSXDisplay.RGB24 = FALSE; // init some stuff
PSXDisplay.Interlaced = FALSE;
@@
-500,6
+505,14
@@
int renderer_init(void)
return 0;
}
return 0;
}
+void renderer_finish(void)
+{
+}
+
+void renderer_notify_res_change(void)
+{
+}
+
extern const unsigned char cmd_lengths[256];
// XXX: mostly dupe code from soft peops
extern const unsigned char cmd_lengths[256];
// XXX: mostly dupe code from soft peops
@@
-536,7
+549,12
@@
int do_cmd_list(unsigned int *list, int list_len, int *last_cmd)
while(1)
{
while(1)
{
- if((*list_position & 0xf000f000) == 0x50005000 || list_position >= list_end)
+ if(list_position >= list_end) {
+ cmd = -1;
+ goto breakloop;
+ }
+
+ if((*list_position & 0xf000f000) == 0x50005000)
break;
list_position++;
break;
list_position++;
@@
-554,7
+572,12
@@
int do_cmd_list(unsigned int *list, int list_len, int *last_cmd)
while(1)
{
while(1)
{
- if((*list_position & 0xf000f000) == 0x50005000 || list_position >= list_end)
+ if(list_position >= list_end) {
+ cmd = -1;
+ goto breakloop;
+ }
+
+ if((*list_position & 0xf000f000) == 0x50005000)
break;
list_position += 2;
break;
list_position += 2;
@@
-580,6
+603,7
@@
int do_cmd_list(unsigned int *list, int list_len, int *last_cmd)
}
}
}
}
+breakloop:
gpu.ex_regs[1] &= ~0x1ff;
gpu.ex_regs[1] |= lGPUstatusRet & 0x1ff;
gpu.ex_regs[1] &= ~0x1ff;
gpu.ex_regs[1] |= lGPUstatusRet & 0x1ff;
@@
-640,6
+664,14
@@
void vout_update(void)
}
}
}
}
+void vout_blank(void)
+{
+}
+
+void vout_set_config(const struct rearmed_cbs *cbs)
+{
+}
+
static struct rearmed_cbs *cbs;
long GPUopen(void **dpy)
static struct rearmed_cbs *cbs;
long GPUopen(void **dpy)
@@
-658,7
+690,7
@@
long GPUopen(void **dpy)
InitializeTextureStore(); // init texture mem
InitializeTextureStore(); // init texture mem
- ret = GLinitialize();
+ ret = GLinitialize(
cbs->gles_display, cbs->gles_surface
);
MakeDisplayLists();
is_opened = 1;
MakeDisplayLists();
is_opened = 1;
@@
-694,15
+726,23
@@
void renderer_set_config(const struct rearmed_cbs *cbs_)
bUseFastMdec = cbs->gpu_peopsgl.bUseFastMdec;
iTexGarbageCollection = cbs->gpu_peopsgl.iTexGarbageCollection;
iVRamSize = cbs->gpu_peopsgl.iVRamSize;
bUseFastMdec = cbs->gpu_peopsgl.bUseFastMdec;
iTexGarbageCollection = cbs->gpu_peopsgl.iTexGarbageCollection;
iVRamSize = cbs->gpu_peopsgl.iVRamSize;
-}
-void vout_set_config(const struct rearmed_cbs *cbs)
-{
+ if (cbs->pl_set_gpu_caps)
+ cbs->pl_set_gpu_caps(GPU_CAP_OWNS_DISPLAY);
+
+ if (is_opened && cbs->gles_display != NULL && cbs->gles_surface != NULL) {
+ // HACK..
+ GPUclose();
+ GPUopen(NULL);
+ }
+
+ set_vram(gpu.vram);
}
void SetAspectRatio(void)
{
}
void SetAspectRatio(void)
{
- cbs->pl_get_layer_pos(&rRatioRect.left, &rRatioRect.top, &rRatioRect.right, &rRatioRect.bottom);
+ if (cbs->pl_get_layer_pos)
+ cbs->pl_get_layer_pos(&rRatioRect.left, &rRatioRect.top, &rRatioRect.right, &rRatioRect.bottom);
glScissor(rRatioRect.left,
iResY-(rRatioRect.top+rRatioRect.bottom),
glScissor(rRatioRect.left,
iResY-(rRatioRect.top+rRatioRect.bottom),