OpenBarnyard
 
Loading...
Searching...
No Matches
AWorldMaterial_DX8.h
Go to the documentation of this file.
1#pragma once
3
5
7{
8public:
10
11public:
14
15 //-----------------------------------------------------------------------------
16 // Toshi::TMaterial
17 //-----------------------------------------------------------------------------
18 virtual void OnDestroy() override;
19 virtual void PreRender() override;
20 virtual void PostRender() override;
21
22 //-----------------------------------------------------------------------------
23 // AWorldMaterial
24 //-----------------------------------------------------------------------------
25 virtual TBOOL Create( BLENDMODE a_eBlendMode ) override;
26 virtual void SetBlendMode( BLENDMODE a_eBlendMode ) override;
27
28 //-----------------------------------------------------------------------------
29 // Own methods
30 //-----------------------------------------------------------------------------
31 virtual void CopyToAlphaBlendMaterial();
32
33 void SetOrderTable( Toshi::TOrderTable* a_pOrderTable );
34
35 AWorldMaterialHAL* GetAlphaBlendMaterial() const { return m_pAlphaBlendMaterial; }
36 void SetAlphaBlendMaterial( AWorldMaterialHAL* val ) { m_pAlphaBlendMaterial = val; }
37
38 TFLOAT GetUVOffsetX( TUINT a_uiTextureIndex )
39 {
40 TASSERT( a_uiTextureIndex < MAX_TEXTURES );
41 return m_aUVOffsetsX[ a_uiTextureIndex ];
42 }
43 void SetUVOffsetX( TUINT a_uiTextureIndex, TFLOAT a_fOffset )
44 {
45 TASSERT( a_uiTextureIndex < MAX_TEXTURES );
46 m_aUVOffsetsX[ a_uiTextureIndex ] = a_fOffset;
47 }
48 void AddUVOffsetX( TUINT a_uiTextureIndex, TFLOAT a_fOffset )
49 {
50 TASSERT( a_uiTextureIndex < MAX_TEXTURES );
51 m_aUVOffsetsX[ a_uiTextureIndex ] += a_fOffset;
52 }
53
54 TFLOAT GetUVOffsetY( TUINT a_uiTextureIndex )
55 {
56 TASSERT( a_uiTextureIndex < MAX_TEXTURES );
57 return m_aUVOffsetsY[ a_uiTextureIndex ];
58 }
59 void SetUVOffsetY( TUINT a_uiTextureIndex, TFLOAT a_fOffset )
60 {
61 TASSERT( a_uiTextureIndex < MAX_TEXTURES );
62 m_aUVOffsetsY[ a_uiTextureIndex ] = a_fOffset;
63 }
64 void AddUVOffsetY( TUINT a_uiTextureIndex, TFLOAT a_fOffset )
65 {
66 TASSERT( a_uiTextureIndex < MAX_TEXTURES );
67 m_aUVOffsetsY[ a_uiTextureIndex ] += a_fOffset;
68 }
69
70private:
71 void SetupRenderer();
72
73private:
74 AWorldMaterialHAL* m_pAlphaBlendMaterial;
75 Toshi::TOrderTable* m_pAssignedOrderTable;
76 TBOOL m_aHasUVOffsets[ MAX_TEXTURES ];
77 TFLOAT m_aUVOffsetsX[ MAX_TEXTURES ];
78 TFLOAT m_aUVOffsetsY[ MAX_TEXTURES ];
79};
#define TASSERT(X,...)
Definition Defines.h:138
unsigned int TUINT
Definition Typedefs.h:8
float TFLOAT
Definition Typedefs.h:4
bool TBOOL
Definition Typedefs.h:6
void SetUVOffsetX(TUINT a_uiTextureIndex, TFLOAT a_fOffset)
void SetAlphaBlendMaterial(AWorldMaterialHAL *val)
void AddUVOffsetX(TUINT a_uiTextureIndex, TFLOAT a_fOffset)
void SetOrderTable(Toshi::TOrderTable *a_pOrderTable)
virtual TBOOL Create(BLENDMODE a_eBlendMode) override
void SetUVOffsetY(TUINT a_uiTextureIndex, TFLOAT a_fOffset)
virtual void PreRender() override
void AddUVOffsetY(TUINT a_uiTextureIndex, TFLOAT a_fOffset)
TFLOAT GetUVOffsetX(TUINT a_uiTextureIndex)
TFLOAT GetUVOffsetY(TUINT a_uiTextureIndex)
virtual void CopyToAlphaBlendMaterial()
virtual void SetBlendMode(BLENDMODE a_eBlendMode) override
TDECLARE_CLASS(AWorldMaterialHAL, AWorldMaterial)
virtual void PostRender() override
virtual void OnDestroy() override
AWorldMaterialHAL * GetAlphaBlendMaterial() const
static constexpr TUINT MAX_TEXTURES