X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=pcsx_rearmed.git;a=blobdiff_plain;f=plugins%2Fgpulib%2Fgpu.h;h=d11f991ca0cdce58280e92f013519be81971da9d;hp=11bfe467148d1e0556abf44a1024833e6a9a50ee;hb=c4c66b22ae607aa8dc5e6983f7ab030ead01faae;hpb=b243416b907e6ce366b051e77ed8a434f7668d5d diff --git a/plugins/gpulib/gpu.h b/plugins/gpulib/gpu.h index 11bfe467..d11f991c 100644 --- a/plugins/gpulib/gpu.h +++ b/plugins/gpulib/gpu.h @@ -17,10 +17,9 @@ extern "C" { #define CMD_BUFFER_LEN 1024 struct psx_gpu { - uint16_t vram[1024 * 512]; - uint16_t guard[1024 * 512]; // overdraw guard uint32_t cmd_buffer[CMD_BUFFER_LEN]; uint32_t regs[16]; + uint16_t *vram; union { uint32_t reg; struct { @@ -66,6 +65,9 @@ struct psx_gpu { uint32_t fb_dirty:1; uint32_t old_interlace:1; uint32_t allow_interlace:2; + uint32_t blanked:1; + uint32_t enhancement_enable:1; + uint32_t enhancement_active:1; uint32_t *frame_count; uint32_t *hcnt; /* hsync count */ struct { @@ -84,7 +86,12 @@ struct psx_gpu { uint32_t frame_ready:1; const int *advice; uint32_t last_flip_frame; + uint32_t pending_fill[3]; } frameskip; + uint16_t *(*get_enhancement_bufer) + (int *x, int *y, int *w, int *h, int *vram_h); + void *(*mmap)(unsigned int size); + void (*munmap)(void *ptr, unsigned int size); }; extern struct psx_gpu gpu; @@ -96,15 +103,18 @@ int do_cmd_list(uint32_t *list, int count, int *last_cmd); struct rearmed_cbs; int renderer_init(void); +void renderer_finish(void); void renderer_sync_ecmds(uint32_t * ecmds); void renderer_update_caches(int x, int y, int w, int h); void renderer_flush_queues(void); void renderer_set_interlace(int enable, int is_odd); void renderer_set_config(const struct rearmed_cbs *config); +void renderer_notify_res_change(void); int vout_init(void); int vout_finish(void); void vout_update(void); +void vout_blank(void); void vout_set_config(const struct rearmed_cbs *config); /* listing these here for correct linkage if rasterizer uses c++ */