OpenBarnyard
 
Loading...
Searching...
No Matches
AGUI2Renderer_DX8.h
Go to the documentation of this file.
1#pragma once
2#include "GUI/AGUI2Renderer.h"
3
4#include <Math/TMatrix44.h>
5
7{
8public:
9 inline constexpr static TUINT32 MAX_NUM_TRANSFORMS = 32;
10 inline constexpr static TUINT32 MAX_VERTICES = 8;
11
12 struct Vertex
13 {
14 Toshi::TVector3 Position;
16 Toshi::TVector2 UV;
17 };
18
19public:
21 virtual ~AGUI2RendererDX8();
22
23 virtual AGUI2Material* CreateMaterial( const TCHAR* a_szTextureName ) OVERRIDE;
24 virtual AGUI2Material* CreateMaterial( Toshi::TTexture* a_pTexture ) OVERRIDE;
25 virtual void DestroyMaterial( AGUI2Material* a_pMaterial ) OVERRIDE;
26 virtual Toshi::TTexture* GetTexture( const TCHAR* a_szTextureName ) OVERRIDE;
27 virtual TUINT GetWidth( AGUI2Material* a_pMaterial ) OVERRIDE;
28 virtual TUINT GetHeight( AGUI2Material* a_pMaterial ) OVERRIDE;
29 virtual void BeginScene() OVERRIDE;
30 virtual void EndScene() OVERRIDE;
31 virtual void ResetRenderer() OVERRIDE;
32 virtual void PrepareRenderer() OVERRIDE;
33 virtual void SetMaterial( AGUI2Material* a_pMaterial ) OVERRIDE;
34 virtual void PushTransform( const AGUI2Transform& a_rTransform, const Toshi::TVector2& a_rVec1, const Toshi::TVector2& a_rVec2 ) OVERRIDE;
35 virtual void PopTransform() OVERRIDE;
36 virtual void SetTransform( const AGUI2Transform& a_rTransform ) OVERRIDE;
37 virtual void SetColour( TUINT32 a_uiColour ) OVERRIDE;
38 virtual void SetScissor( TFLOAT a_fVal1, TFLOAT a_fVal2, TFLOAT a_fVal3, TFLOAT a_fVal4 ) OVERRIDE;
39 virtual void ClearScissor() OVERRIDE;
40 virtual void RenderRectangle( const Toshi::TVector2& a, const Toshi::TVector2& b, const Toshi::TVector2& uv1, const Toshi::TVector2& uv2 ) OVERRIDE;
41 virtual void RenderTriStrip( Toshi::TVector2* vertices, Toshi::TVector2* UV, uint32_t numverts ) OVERRIDE;
42 virtual void RenderLine( const Toshi::TVector2& a, const Toshi::TVector2& b ) OVERRIDE;
43 virtual void RenderLine( TFLOAT x1, TFLOAT y1, TFLOAT x2, TFLOAT y2 ) OVERRIDE;
44 virtual void RenderOutlineRectangle( const Toshi::TVector2& a, const Toshi::TVector2& b ) OVERRIDE;
45 virtual void RenderFilledRectangle( const Toshi::TVector2& a, const Toshi::TVector2& b ) OVERRIDE;
46 virtual void ScaleCoords( TFLOAT& x, TFLOAT& y ) OVERRIDE;
47 virtual void ResetZCoordinate() OVERRIDE;
48
49 void UpdateTransform();
50
51private:
52 static void SetupProjectionMatrix( Toshi::TMatrix44& a_rOutMatrix, TINT a_iLeft, TINT a_iRight, TINT a_iTop, TINT a_iBottom );
53
54public:
56 inline static TBOOL sm_bUnknownFlag = TFALSE;
57 inline static TFLOAT sm_fZCoordinate = 0.1f;
58
59private:
60 AGUI2Transform* m_pTransforms;
61 TINT m_iTransformCount;
62 TUINT32 m_uiColour;
63 TBOOL m_bIsTransformDirty;
64 AGUI2Material* m_pMaterial;
65};
4x4 matrix implementation for the Toshi engine
#define OVERRIDE
Definition Defines.h:12
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
int TINT
Definition Typedefs.h:7
#define TFALSE
Definition Typedefs.h:24
bool TBOOL
Definition Typedefs.h:6
static Vertex sm_Vertices[MAX_VERTICES]
virtual void RenderLine(const Toshi::TVector2 &a, const Toshi::TVector2 &b) OVERRIDE
virtual void RenderOutlineRectangle(const Toshi::TVector2 &a, const Toshi::TVector2 &b) OVERRIDE
virtual void PushTransform(const AGUI2Transform &a_rTransform, const Toshi::TVector2 &a_rVec1, const Toshi::TVector2 &a_rVec2) OVERRIDE
virtual void EndScene() OVERRIDE
static TBOOL sm_bUnknownFlag
virtual void SetColour(TUINT32 a_uiColour) OVERRIDE
virtual void SetTransform(const AGUI2Transform &a_rTransform) OVERRIDE
static constexpr TUINT32 MAX_VERTICES
virtual void PopTransform() OVERRIDE
virtual void RenderFilledRectangle(const Toshi::TVector2 &a, const Toshi::TVector2 &b) OVERRIDE
virtual void SetScissor(TFLOAT a_fVal1, TFLOAT a_fVal2, TFLOAT a_fVal3, TFLOAT a_fVal4) OVERRIDE
virtual void RenderRectangle(const Toshi::TVector2 &a, const Toshi::TVector2 &b, const Toshi::TVector2 &uv1, const Toshi::TVector2 &uv2) OVERRIDE
static TFLOAT sm_fZCoordinate
virtual void RenderTriStrip(Toshi::TVector2 *vertices, Toshi::TVector2 *UV, uint32_t numverts) OVERRIDE
virtual void ScaleCoords(TFLOAT &x, TFLOAT &y) OVERRIDE
static constexpr TUINT32 MAX_NUM_TRANSFORMS
virtual void SetMaterial(AGUI2Material *a_pMaterial) OVERRIDE
virtual void DestroyMaterial(AGUI2Material *a_pMaterial) OVERRIDE
virtual void ClearScissor() OVERRIDE
virtual void ResetZCoordinate() OVERRIDE
virtual AGUI2Material * CreateMaterial(const TCHAR *a_szTextureName) OVERRIDE
virtual void ResetRenderer() OVERRIDE
virtual TUINT GetHeight(AGUI2Material *a_pMaterial) OVERRIDE
virtual TUINT GetWidth(AGUI2Material *a_pMaterial) OVERRIDE
virtual void PrepareRenderer() OVERRIDE
virtual void BeginScene() OVERRIDE
virtual Toshi::TTexture * GetTexture(const TCHAR *a_szTextureName) OVERRIDE