OpenBarnyard
 
Loading...
Searching...
No Matches
AGUI2Renderer.h
Go to the documentation of this file.
1#pragma once
2#include "AGUI2Material.h"
3#include "AGUI2Transform.h"
4
5#include <Math/TVector2.h>
6
8{
9public:
10 virtual ~AGUI2Renderer() = default;
11 virtual AGUI2Material* CreateMaterial( const TCHAR* a_szTextureName ) = 0;
12 virtual AGUI2Material* CreateMaterial( Toshi::TTexture* a_pTexture ) = 0;
13 virtual void DestroyMaterial( AGUI2Material* a_pMaterial ) = 0;
14 virtual Toshi::TTexture* GetTexture( const TCHAR* a_szTextureName ) = 0;
15 virtual TUINT GetWidth( AGUI2Material* a_pMaterial ) = 0;
16 virtual TUINT GetHeight( AGUI2Material* a_pMaterial ) = 0;
17 virtual void BeginScene() = 0;
18 virtual void EndScene() = 0;
19 virtual void ResetRenderer() = 0;
20 virtual void PrepareRenderer() = 0;
21 virtual void SetMaterial( AGUI2Material* a_pMaterial ) = 0;
22 virtual void PushTransform( const AGUI2Transform& a_rTransform, const Toshi::TVector2& a_rVec1, const Toshi::TVector2& a_rVec2 ) = 0;
23 virtual void PopTransform() = 0;
24 virtual void SetTransform( const AGUI2Transform& a_rTransform ) = 0;
25 virtual void SetColour( TUINT32 a_uiColour ) = 0;
26 virtual void SetScissor( TFLOAT a_fVal1, TFLOAT a_fVal2, TFLOAT a_fVal3, TFLOAT a_fVal4 ) = 0;
27 virtual void ClearScissor() = 0;
28 virtual void RenderRectangle( const Toshi::TVector2& a, const Toshi::TVector2& b, const Toshi::TVector2& uv1, const Toshi::TVector2& uv2 ) = 0;
29 virtual void RenderTriStrip( Toshi::TVector2* vertices, Toshi::TVector2* UV, uint32_t numverts ) = 0;
30 virtual void RenderLine( const Toshi::TVector2& a, const Toshi::TVector2& b ) = 0;
31 virtual void RenderLine( TFLOAT x1, TFLOAT y1, TFLOAT x2, TFLOAT y2 ) = 0;
32 virtual void RenderOutlineRectangle( const Toshi::TVector2& a, const Toshi::TVector2& b ) = 0;
33 virtual void RenderFilledRectangle( const Toshi::TVector2& a, const Toshi::TVector2& b ) = 0;
34 virtual void ScaleCoords( TFLOAT& x, TFLOAT& y ) = 0;
35 virtual void ResetZCoordinate() = 0;
36};
unsigned int TUINT
Definition Typedefs.h:8
char TCHAR
Definition Typedefs.h:20
float TFLOAT
Definition Typedefs.h:4
uint32_t TUINT32
Definition Typedefs.h:13
virtual void PopTransform()=0
virtual void RenderRectangle(const Toshi::TVector2 &a, const Toshi::TVector2 &b, const Toshi::TVector2 &uv1, const Toshi::TVector2 &uv2)=0
virtual void ResetRenderer()=0
virtual void EndScene()=0
virtual Toshi::TTexture * GetTexture(const TCHAR *a_szTextureName)=0
virtual ~AGUI2Renderer()=default
virtual void PushTransform(const AGUI2Transform &a_rTransform, const Toshi::TVector2 &a_rVec1, const Toshi::TVector2 &a_rVec2)=0
virtual void BeginScene()=0
virtual AGUI2Material * CreateMaterial(const TCHAR *a_szTextureName)=0
virtual void RenderFilledRectangle(const Toshi::TVector2 &a, const Toshi::TVector2 &b)=0
virtual void PrepareRenderer()=0
virtual void ResetZCoordinate()=0
virtual void SetTransform(const AGUI2Transform &a_rTransform)=0
virtual void SetColour(TUINT32 a_uiColour)=0
virtual TUINT GetHeight(AGUI2Material *a_pMaterial)=0
virtual void RenderTriStrip(Toshi::TVector2 *vertices, Toshi::TVector2 *UV, uint32_t numverts)=0
virtual void DestroyMaterial(AGUI2Material *a_pMaterial)=0
virtual void ClearScissor()=0
virtual void SetScissor(TFLOAT a_fVal1, TFLOAT a_fVal2, TFLOAT a_fVal3, TFLOAT a_fVal4)=0
virtual AGUI2Material * CreateMaterial(Toshi::TTexture *a_pTexture)=0
virtual void SetMaterial(AGUI2Material *a_pMaterial)=0
virtual void RenderOutlineRectangle(const Toshi::TVector2 &a, const Toshi::TVector2 &b)=0
virtual void RenderLine(const Toshi::TVector2 &a, const Toshi::TVector2 &b)=0
virtual void ScaleCoords(TFLOAT &x, TFLOAT &y)=0
virtual void RenderLine(TFLOAT x1, TFLOAT y1, TFLOAT x2, TFLOAT y2)=0
virtual TUINT GetWidth(AGUI2Material *a_pMaterial)=0