mirror of https://github.com/PCSX2/pcsx2.git
gsdx-ogl: use final qualifier to help compiler
Improve Devirtualization optimization
This commit is contained in:
parent
771583c559
commit
e3787b6b3c
|
@ -451,11 +451,11 @@ class GSDeviceOGL : public GSDevice
|
|||
GSTexture* CreateSurface(int type, int w, int h, bool msaa, int format);
|
||||
GSTexture* FetchSurface(int type, int w, int h, bool msaa, int format);
|
||||
|
||||
void DoMerge(GSTexture* sTex[2], GSVector4* sRect, GSTexture* dTex, GSVector4* dRect, bool slbg, bool mmod, const GSVector4& c);
|
||||
void DoInterlace(GSTexture* sTex, GSTexture* dTex, int shader, bool linear, float yoffset = 0);
|
||||
void DoFXAA(GSTexture* sTex, GSTexture* dTex);
|
||||
void DoShadeBoost(GSTexture* sTex, GSTexture* dTex);
|
||||
void DoExternalFX(GSTexture* sTex, GSTexture* dTex);
|
||||
void DoMerge(GSTexture* sTex[2], GSVector4* sRect, GSTexture* dTex, GSVector4* dRect, bool slbg, bool mmod, const GSVector4& c) final;
|
||||
void DoInterlace(GSTexture* sTex, GSTexture* dTex, int shader, bool linear, float yoffset = 0) final;
|
||||
void DoFXAA(GSTexture* sTex, GSTexture* dTex) final;
|
||||
void DoShadeBoost(GSTexture* sTex, GSTexture* dTex) final;
|
||||
void DoExternalFX(GSTexture* sTex, GSTexture* dTex) final;
|
||||
|
||||
void OMAttachRt(GSTextureOGL* rt = NULL);
|
||||
void OMAttachDs(GSTextureOGL* ds = NULL);
|
||||
|
@ -479,49 +479,49 @@ class GSDeviceOGL : public GSDevice
|
|||
void Flip();
|
||||
void SetVSync(bool enable);
|
||||
|
||||
void DrawPrimitive();
|
||||
void DrawPrimitive() final;
|
||||
void DrawPrimitive(int offset, int count);
|
||||
void DrawIndexedPrimitive();
|
||||
void DrawIndexedPrimitive(int offset, int count);
|
||||
void BeforeDraw();
|
||||
void AfterDraw();
|
||||
void DrawIndexedPrimitive() final;
|
||||
void DrawIndexedPrimitive(int offset, int count) final;
|
||||
inline void BeforeDraw();
|
||||
inline void AfterDraw();
|
||||
|
||||
void ClearRenderTarget(GSTexture* t, const GSVector4& c);
|
||||
void ClearRenderTarget(GSTexture* t, uint32 c);
|
||||
void ClearRenderTarget(GSTexture* t, const GSVector4& c) final;
|
||||
void ClearRenderTarget(GSTexture* t, uint32 c) final;
|
||||
void ClearRenderTarget_i(GSTexture* t, int32 c);
|
||||
void ClearDepth(GSTexture* t, float c);
|
||||
void ClearStencil(GSTexture* t, uint8 c);
|
||||
void ClearDepth(GSTexture* t, float c) final;
|
||||
void ClearStencil(GSTexture* t, uint8 c) final;
|
||||
|
||||
GSTexture* CreateRenderTarget(int w, int h, bool msaa, int format = 0);
|
||||
GSTexture* CreateDepthStencil(int w, int h, bool msaa, int format = 0);
|
||||
GSTexture* CreateTexture(int w, int h, int format = 0);
|
||||
GSTexture* CreateOffscreen(int w, int h, int format = 0);
|
||||
GSTexture* CreateRenderTarget(int w, int h, bool msaa, int format = 0) final;
|
||||
GSTexture* CreateDepthStencil(int w, int h, bool msaa, int format = 0) final;
|
||||
GSTexture* CreateTexture(int w, int h, int format = 0) final;
|
||||
GSTexture* CreateOffscreen(int w, int h, int format = 0) final;
|
||||
void InitPrimDateTexture(GSTexture* rt);
|
||||
void RecycleDateTexture();
|
||||
|
||||
GSTexture* CopyOffscreen(GSTexture* src, const GSVector4& sRect, int w, int h, int format = 0, int ps_shader = 0);
|
||||
GSTexture* CopyOffscreen(GSTexture* src, const GSVector4& sRect, int w, int h, int format = 0, int ps_shader = 0) final;
|
||||
|
||||
void CopyRect(GSTexture* sTex, GSTexture* dTex, const GSVector4i& r);
|
||||
void CopyRect(GSTexture* sTex, GSTexture* dTex, const GSVector4i& r) final;
|
||||
void CopyRectConv(GSTexture* sTex, GSTexture* dTex, const GSVector4i& r, bool at_origin);
|
||||
void StretchRect(GSTexture* sTex, const GSVector4& sRect, GSTexture* dTex, const GSVector4& dRect, int shader = 0, bool linear = true);
|
||||
void StretchRect(GSTexture* sTex, const GSVector4& sRect, GSTexture* dTex, const GSVector4& dRect, int shader = 0, bool linear = true) final;
|
||||
void StretchRect(GSTexture* sTex, const GSVector4& sRect, GSTexture* dTex, const GSVector4& dRect, GLuint ps, bool linear = true);
|
||||
void StretchRect(GSTexture* sTex, const GSVector4& sRect, GSTexture* dTex, const GSVector4& dRect, GLuint ps, int bs, bool linear = true);
|
||||
|
||||
void SetupDATE(GSTexture* rt, GSTexture* ds, const GSVertexPT1* vertices, bool datm);
|
||||
|
||||
void EndScene();
|
||||
void EndScene() final;
|
||||
|
||||
void IASetPrimitiveTopology(GLenum topology);
|
||||
void IASetVertexBuffer(const void* vertices, size_t count);
|
||||
void IASetIndexBuffer(const void* index, size_t count);
|
||||
|
||||
void PSSetShaderResource(int i, GSTexture* sr);
|
||||
void PSSetShaderResources(GSTexture* sr0, GSTexture* sr1);
|
||||
void PSSetShaderResource(int i, GSTexture* sr) final;
|
||||
void PSSetShaderResources(GSTexture* sr0, GSTexture* sr1) final;
|
||||
void PSSetSamplerState(GLuint ss);
|
||||
|
||||
void OMSetDepthStencilState(GSDepthStencilOGL* dss);
|
||||
void OMSetBlendState(uint8 blend_index = 0, uint8 blend_factor = 0, bool is_blend_constant = false);
|
||||
void OMSetRenderTargets(GSTexture* rt, GSTexture* ds, const GSVector4i* scissor = NULL);
|
||||
void OMSetRenderTargets(GSTexture* rt, GSTexture* ds, const GSVector4i* scissor = NULL) final;
|
||||
void OMSetColorMaskState(OMColorMaskSelector sel = OMColorMaskSelector());
|
||||
|
||||
|
||||
|
|
|
@ -60,7 +60,7 @@ class GSRendererOGL : public GSRendererHW
|
|||
|
||||
GSVector4i ComputeBoundingBox(const GSVector2& rtscale, const GSVector2i& rtsize);
|
||||
|
||||
protected:
|
||||
private:
|
||||
void EmulateGS();
|
||||
void SetupIA();
|
||||
bool EmulateTextureShuffleAndFbmask(GSDeviceOGL::PSSelector& ps_sel, GSDeviceOGL::OMColorMaskSelector& om_csel);
|
||||
|
@ -72,7 +72,7 @@ class GSRendererOGL : public GSRendererHW
|
|||
|
||||
bool CreateDevice(GSDevice* dev);
|
||||
|
||||
void DrawPrims(GSTexture* rt, GSTexture* ds, GSTextureCache::Source* tex);
|
||||
void DrawPrims(GSTexture* rt, GSTexture* ds, GSTextureCache::Source* tex) final;
|
||||
|
||||
PRIM_OVERLAP PrimitiveOverlap();
|
||||
|
||||
|
|
|
@ -66,16 +66,16 @@ class GSTextureOGL : public GSTexture
|
|||
explicit GSTextureOGL(int type, int w, int h, int format, GLuint fbo_read);
|
||||
virtual ~GSTextureOGL();
|
||||
|
||||
void Invalidate();
|
||||
bool Update(const GSVector4i& r, const void* data, int pitch);
|
||||
bool Map(GSMap& m, const GSVector4i* r = NULL);
|
||||
void Unmap();
|
||||
bool Save(const string& fn, bool user_image = false, bool dds = false);
|
||||
void Invalidate() final;
|
||||
bool Update(const GSVector4i& r, const void* data, int pitch) final;
|
||||
bool Map(GSMap& m, const GSVector4i* r = NULL) final;
|
||||
void Unmap() final;
|
||||
bool Save(const string& fn, bool user_image = false, bool dds = false) final;
|
||||
|
||||
bool IsBackbuffer() { return (m_type == GSTexture::Backbuffer); }
|
||||
bool IsDss() { return (m_type == GSTexture::DepthStencil); }
|
||||
|
||||
uint32 GetID() { return m_texture_id; }
|
||||
uint32 GetID() final { return m_texture_id; }
|
||||
bool HasBeenCleaned() { return m_clean; }
|
||||
void WasAttached() { m_clean = false; m_dirty = true; }
|
||||
void WasCleaned() { m_clean = true; }
|
||||
|
|
Loading…
Reference in New Issue