flycast/core/hw/pvr/Renderer_if.h

66 lines
1.1 KiB
C
Raw Normal View History

2013-12-19 17:10:14 +00:00
#pragma once
#include "drkPvr.h"
#include "ta_ctx.h"
extern u32 VertexCount;
extern u32 FrameCount;
bool rend_init();
void rend_term();
void rend_vblank();
void rend_start_render();
void rend_end_render();
void rend_end_wait();
void rend_set_fb_scale(float x,float y);
2015-05-08 15:44:27 +00:00
void rend_resize(int width, int height);
2013-12-19 17:10:14 +00:00
void rend_text_invl(vram_block* bl);
2014-09-30 09:00:46 +00:00
#ifdef GLuint
GLuint
#else
u32
#endif
GetTexture(TSP tsp,TCW tcw);
2013-12-19 17:10:14 +00:00
///////
extern TA_context* _pvrrc;
#define pvrrc (_pvrrc->rend)
struct Renderer
{
virtual bool Init()=0;
virtual void Resize(int w, int h)=0;
virtual void Term()=0;
virtual bool Process(TA_context* ctx)=0;
2013-12-19 17:10:14 +00:00
virtual bool Render()=0;
virtual void Present()=0;
virtual void DrawOSD() { }
virtual u32 GetTexture(TSP tsp, TCW tcw) { return 0; }
2013-12-19 17:10:14 +00:00
};
extern Renderer* renderer;
2013-12-19 17:10:14 +00:00
Renderer* rend_D3D11();
Renderer* rend_GLES2();
Renderer* rend_norend();
2018-08-26 14:58:10 +00:00
Renderer* rend_softrend();
extern u32 fb1_watch_addr_start;
extern u32 fb1_watch_addr_end;
extern u32 fb2_watch_addr_start;
extern u32 fb2_watch_addr_end;
extern bool fb_dirty;
void check_framebuffer_write();