OpenBarnyard
 
Loading...
Searching...
No Matches
AGrassMaterialHAL Class Reference

#include <AGrassMaterialHAL_DX8.h>

Inheritance diagram for AGrassMaterialHAL:
AGrassMaterial

Public Types

using ThisClass = AGrassMaterialHAL
 
using BaseClass = AGrassMaterial
 
- Public Types inherited from AGrassMaterial
using ThisClass = AGrassMaterial
 
using BaseClass = Toshi::TMaterial
 
using BLENDMODE = TINT
 

Public Member Functions

virtual Toshi::TClass * GetClass () override
 
 AGrassMaterialHAL ()
 
 ~AGrassMaterialHAL ()
 
virtual void PreRender () override
 
virtual void PostRender () override
 
- Public Member Functions inherited from AGrassMaterial
 AGrassMaterial ()
 
 ~AGrassMaterial ()
 
virtual TBOOL Create (BLENDMODE a_eBlendMode)
 
virtual void SetBlendMode (BLENDMODE a_eBlendMode)
 
void SetTexture (TUINT a_uiStage, Toshi::TTexture *a_pTexture)
 

Static Public Member Functions

static Toshi::TObject * CreateTObject ()
 
static Toshi::TObject * CreateTObjectInPlace (void *a_pPtr)
 
static void InitialiseClass ()
 
static void DeinitialiseClass ()
 
static __forceinline Toshi::TClass * GetClassStatic ()
 
- Static Public Member Functions inherited from AGrassMaterial
static Toshi::TObject * CreateTObject ()
 
static Toshi::TObject * CreateTObjectInPlace (void *a_pPtr)
 
static void InitialiseClass ()
 
static void DeinitialiseClass ()
 
static __forceinline Toshi::TClass * GetClassStatic ()
 
static void InitialiseStatic ()
 

Static Public Attributes

static constexpr Toshi::TClass * PARENTCLASS = & AGrassMaterial::ms_oClass
 
static Toshi::TClass ms_oClass = Toshi::TClass( "AGrassMaterialHAL", AGrassMaterialHAL::PARENTCLASS, AGrassMaterialHAL::CreateTObject, AGrassMaterialHAL::CreateTObjectInPlace, AGrassMaterialHAL::InitialiseClass, AGrassMaterialHAL::DeinitialiseClass, 0, 1, sizeof( AGrassMaterialHAL ), alignof( AGrassMaterialHAL ) )
 
- Static Public Attributes inherited from AGrassMaterial
static constexpr Toshi::TClass * PARENTCLASS = & Toshi::TMaterial::ms_oClass
 
static Toshi::TClass ms_oClass = Toshi::TClass( "AGrassMaterial", AGrassMaterial::PARENTCLASS, AGrassMaterial::CreateTObject, AGrassMaterial::CreateTObjectInPlace, AGrassMaterial::InitialiseClass, AGrassMaterial::DeinitialiseClass, 0, 1, sizeof( AGrassMaterial ), alignof( AGrassMaterial ) )
 

Additional Inherited Members

- Protected Attributes inherited from AGrassMaterial
Toshi::TTexture * m_aTextures [AWorldMaterial::MAX_TEXTURES]
 
BLENDMODE m_eBlendMode
 

Detailed Description

Definition at line 4 of file AGrassMaterialHAL_DX8.h.

Member Typedef Documentation

◆ BaseClass

◆ ThisClass

Constructor & Destructor Documentation

◆ AGrassMaterialHAL()

AGrassMaterialHAL::AGrassMaterialHAL ( )

Definition at line 18 of file AGrassMaterialHAL_DX8.cpp.

19{
20
21}

◆ ~AGrassMaterialHAL()

AGrassMaterialHAL::~AGrassMaterialHAL ( )

Definition at line 25 of file AGrassMaterialHAL_DX8.cpp.

26{
27}

Member Function Documentation

◆ CreateTObject()

Toshi::TObject * AGrassMaterialHAL::CreateTObject ( )
static

Definition at line 16 of file AGrassMaterialHAL_DX8.cpp.

◆ CreateTObjectInPlace()

Toshi::TObject * AGrassMaterialHAL::CreateTObjectInPlace ( void * a_pPtr)
static

Definition at line 16 of file AGrassMaterialHAL_DX8.cpp.

◆ DeinitialiseClass()

void AGrassMaterialHAL::DeinitialiseClass ( )
static

Definition at line 16 of file AGrassMaterialHAL_DX8.cpp.

◆ GetClass()

Toshi::TClass * AGrassMaterialHAL::GetClass ( )
overridevirtual

Reimplemented from AGrassMaterial.

Definition at line 16 of file AGrassMaterialHAL_DX8.cpp.

◆ GetClassStatic()

static __forceinline Toshi::TClass * AGrassMaterialHAL::GetClassStatic ( )
inlinestatic

Definition at line 8 of file AGrassMaterialHAL_DX8.h.

◆ InitialiseClass()

void AGrassMaterialHAL::InitialiseClass ( )
static

Definition at line 16 of file AGrassMaterialHAL_DX8.cpp.

◆ PostRender()

void AGrassMaterialHAL::PostRender ( )
overridevirtual

Definition at line 82 of file AGrassMaterialHAL_DX8.cpp.

83{
84 TRenderD3DInterface* pRenderInterface = TRenderD3DInterface::Interface();
85 IDirect3DDevice8* pDevice = pRenderInterface->GetDirect3DDevice();
86
87 if ( m_Flags & FLAGS_NO_CULL )
88 pDevice->SetRenderState( D3DRS_CULLMODE, 2 );
89
90 pRenderInterface->SetTextureAddress( 0, ADDRESSINGMODE_WRAP, TEXCOORD_UV );
91 pDevice->SetTexture( 0, TNULL );
92 pDevice->SetRenderState( D3DRS_ZWRITEENABLE, TRUE );
93}
@ ADDRESSINGMODE_WRAP
Definition TRender.h:40
@ TEXCOORD_UV
Definition TRender.h:29
#define TNULL
Definition Typedefs.h:23
TFORCEINLINE IDirect3DDevice8 * GetDirect3DDevice() const
Gets the Direct3D device.
static TFORCEINLINE TRenderD3DInterface * Interface()
Gets the render interface singleton.
void SetTextureAddress(TINT a_iStage, ADDRESSINGMODE a_eAddressing, TEXCOORD a_eTextureCoordinate=TEXCOORD_UV)
Sets texture addressing mode.

◆ PreRender()

void AGrassMaterialHAL::PreRender ( )
overridevirtual

Definition at line 30 of file AGrassMaterialHAL_DX8.cpp.

31{
32 TRenderD3DInterface* pRenderInterface = TRenderD3DInterface::Interface();
33 TRenderContextD3D* pCurrentContext = TRenderContextD3D::Upcast( pRenderInterface->GetCurrentContext() );
34 IDirect3DDevice8* pDevice = pRenderInterface->GetDirect3DDevice();
35 TTextureResourceHAL* pTextureHAL = TSTATICCAST( TTextureResourceHAL, m_aTextures[ 0 ] );
36
37 extern TTextureResourceHAL* g_pGrassShaderTerrainTexture; // AGrassShaderHAL_DX8.cpp
38 g_pGrassShaderTerrainTexture = TSTATICCAST( TTextureResourceHAL, m_aTextures[ 0 ] );
39
40 if ( pTextureHAL )
41 {
42 pTextureHAL->Validate();
43
44 if ( pTextureHAL->GetD3DTexture() )
45 {
46 pDevice->SetTexture( 0, pTextureHAL->GetD3DTexture() );
47 pRenderInterface->SetTextureAddress( 0, pTextureHAL->GetAddressing(), TEXCOORD_UV );
48 }
49 }
50
51 if ( m_Flags & FLAGS_NO_CULL )
52 pDevice->SetRenderState( D3DRS_CULLMODE, 1 );
53
54 switch ( m_eBlendMode )
55 {
56 case 0:
57 pDevice->SetRenderState( D3DRS_SRCBLEND, 5 );
58 pDevice->SetRenderState( D3DRS_DESTBLEND, 6 );
59 pDevice->SetRenderState( D3DRS_ZWRITEENABLE, TRUE );
60 break;
61 case 1:
62 pDevice->SetRenderState( D3DRS_SRCBLEND, 5 );
63 pDevice->SetRenderState( D3DRS_DESTBLEND, 6 );
64 pDevice->SetRenderState( D3DRS_ZWRITEENABLE, FALSE );
65 break;
66 case 2:
67 pDevice->SetRenderState( D3DRS_SRCBLEND, 1 );
68 pDevice->SetRenderState( D3DRS_DESTBLEND, 3 );
69 pDevice->SetRenderState( D3DRS_ZWRITEENABLE, FALSE );
70 break;
71 case 3:
72 pDevice->SetRenderState( D3DRS_SRCBLEND, 5 );
73 pDevice->SetRenderState( D3DRS_DESTBLEND, 2 );
74 pDevice->SetRenderState( D3DRS_ZWRITEENABLE, FALSE );
75 break;
76 }
77
78 pCurrentContext->EnableFogHAL();
79}
#define TSTATICCAST(POINTERTYPE, VALUE)
Definition Defines.h:69
TTextureResourceHAL * g_pGrassShaderTerrainTexture
static TRenderContextD3D * Upcast(TRenderContext *a_pRenderContext)
IDirect3DTexture8 * GetD3DTexture()
virtual TBOOL Validate() override
ADDRESSINGMODE GetAddressing() const
Definition TTexture.h:55
TRenderContext * GetCurrentContext() const
BLENDMODE m_eBlendMode
Toshi::TTexture * m_aTextures[AWorldMaterial::MAX_TEXTURES]

Member Data Documentation

◆ ms_oClass

Definition at line 8 of file AGrassMaterialHAL_DX8.h.

◆ PARENTCLASS

Toshi::TClass* AGrassMaterialHAL::PARENTCLASS = & AGrassMaterial::ms_oClass
staticconstexpr

Definition at line 8 of file AGrassMaterialHAL_DX8.h.


The documentation for this class was generated from the following files: