5#include <unordered_map>
21 size_t operator()(
const std::pair<float, float>& p)
const {
22 const auto hash1 = std::hash<float>{}(p.first);
23 const auto hash2 = std::hash<float>{}(p.second);
26 return (hash1 != hash2) ? hash1 ^ hash2 : hash1;
44 virtual void UploadTexture(
const uint8_t* rgba32Buf, uint32_t width, uint32_t height) = 0;
48 virtual void SetViewport(
int x,
int y,
int width,
int height) = 0;
49 virtual void SetScissor(
int x,
int y,
int width,
int height) = 0;
51 virtual void DrawTriangles(
float buf_vbo[],
size_t buf_vbo_len,
size_t buf_vbo_num_tris) = 0;
59 bool opengl_invertY,
bool render_target,
bool has_depth_buffer,
60 bool can_extract_depth) = 0;
62 virtual void CopyFramebuffer(
int fbDstId,
int fbSrcId,
int srcX0,
int srcY0,
int srcX1,
int srcY1,
int dstX0,
63 int dstY0,
int dstX1,
int dstY1) = 0;
72 virtual std::unordered_map<std::pair<float, float>, uint16_t,
hash_pair_ff>
73 GetPixelDepth(
int fb_id,
const std::set<std::pair<float, float>>& coordinates) = 0;
Definition gfx_rendering_api.h:30
virtual int CreateFramebuffer()=0
virtual void SetViewport(int x, int y, int width, int height)=0
virtual void SelectTexture(int tile, uint32_t textureId)=0
virtual void ShaderGetInfo(ShaderProgram *prg, uint8_t *numInputs, bool usedTextures[2])=0
virtual int GetMaxTextureSize()=0
virtual void SetDepthTestAndMask(bool depth_test, bool z_upd)=0
virtual void CopyFramebuffer(int fbDstId, int fbSrcId, int srcX0, int srcY0, int srcX1, int srcY1, int dstX0, int dstY0, int dstX1, int dstY1)=0
virtual ShaderProgram * LookupShader(uint64_t shaderId0, uint64_t shaderId1)=0
virtual void SetZmodeDecal(bool decal)=0
int8_t mLastZmodeDecal
Definition gfx_rendering_api.h:89
virtual void StartDrawToFramebuffer(int fbId, float noiseScale)=0
virtual ~GfxRenderingAPI()=default
virtual void OnResize()=0
virtual ImTextureID GetTextureById(int id)=0
virtual void EndFrame()=0
virtual void DrawTriangles(float buf_vbo[], size_t buf_vbo_len, size_t buf_vbo_num_tris)=0
virtual void UnloadShader(ShaderProgram *oldPrg)=0
virtual void ResolveMSAAColorBuffer(int fbIdTarger, int fbIdSrc)=0
bool mPrimDepthDirty
Definition gfx_rendering_api.h:92
virtual void ClearFramebuffer(bool color, bool depth)=0
bool mSrgbMode
Definition gfx_rendering_api.h:90
virtual void LoadShader(ShaderProgram *newPrg)=0
virtual FilteringMode GetTextureFilter()=0
virtual void SetTextureFilter(FilteringMode mode)=0
virtual void ClearDepthRegion(int x, int y, int w, int h)
Definition gfx_rendering_api.h:65
virtual GfxClipParameters GetClipParameters()=0
virtual void DeleteTexture(uint32_t texId)=0
virtual void StartFrame()=0
virtual void UploadTexture(const uint8_t *rgba32Buf, uint32_t width, uint32_t height)=0
virtual const char * GetName()=0
int8_t mCurrentDepthMask
Definition gfx_rendering_api.h:85
int8_t mCurrentDepthTest
Definition gfx_rendering_api.h:84
int8_t mLastDepthTest
Definition gfx_rendering_api.h:87
int8_t mCurrentZmodeDecal
Definition gfx_rendering_api.h:86
virtual void ReadFramebufferToCPU(int fbId, uint32_t width, uint32_t height, uint16_t *rgba16Buf)=0
virtual std::unordered_map< std::pair< float, float >, uint16_t, hash_pair_ff > GetPixelDepth(int fb_id, const std::set< std::pair< float, float > > &coordinates)=0
virtual uint32_t NewTexture()=0
virtual void * GetFramebufferTextureId(int fbId)=0
virtual void UpdateFramebufferParameters(int fb_id, uint32_t width, uint32_t height, uint32_t msaa_level, bool opengl_invertY, bool render_target, bool has_depth_buffer, bool can_extract_depth)=0
virtual void SetSamplerParameters(int sampler, bool linear_filter, uint32_t cms, uint32_t cmt)=0
int8_t mLastDepthMask
Definition gfx_rendering_api.h:88
float mCurrentPrimDepth
Definition gfx_rendering_api.h:91
virtual void SetSrgbMode()=0
virtual void FinishRender()=0
virtual void SetScissor(int x, int y, int width, int height)=0
virtual void SetUseAlpha(bool useAlpha)=0
virtual void SelectTextureFb(int fbId)=0
virtual void SetCurrentPrimDepth(float depth)=0
virtual void ClearShaderCache()=0
virtual ShaderProgram * CreateAndLoadNewShader(uint64_t shaderId0, uint64_t shaderId1)=0
Definition gfx_direct3d_common.h:19
FilteringMode
Definition gfx_rendering_api.h:17
@ FILTER_LINEAR
Definition gfx_rendering_api.h:17
@ FILTER_NONE
Definition gfx_rendering_api.h:17
@ FILTER_THREE_POINT
Definition gfx_rendering_api.h:17
Definition gfx_rendering_api.h:12
bool z_is_from_0_to_1
Definition gfx_rendering_api.h:13
bool invertY
Definition gfx_rendering_api.h:14
OpenGL shader program metadata cached by the Fast3D renderer.
Definition gfx_opengl.h:37
Definition gfx_rendering_api.h:20
size_t operator()(const std::pair< float, float > &p) const
Definition gfx_rendering_api.h:21