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

#include <TViewport.h>

Public Types

enum  ChangeEvent_ : ChangeEvent {
  ChangeEvent_BackgroundColor , ChangeEvent_MaxZ , ChangeEvent_MinZ , ChangeEvent_Height ,
  ChangeEvent_Width , ChangeEvent_X , ChangeEvent_Y , ChangeEvent_AllocatorBlock ,
  ChangeEvent_BackgroundClear , ChangeEvent_DepthClear
}
 
using ChangeEvent = TUINT32
 

Public Member Functions

 TViewport (TBOOL a_bFlag)
 
virtual ~TViewport ()
 
virtual void BeginSKU ()
 
virtual void EndSKU ()
 
virtual void ChangeSKU (ChangeEvent a_eEvent)
 
TFLOAT GetX () const
 
TFLOAT GetY () const
 
TFLOAT GetWidth () const
 
TFLOAT GetHeight () const
 
void Begin ()
 
void End ()
 
TBOOL AllowBackgroundClear (TBOOL allow)
 
TBOOL AllowDepthClear (TBOOL allow)
 
void Enable (TBOOL enable)
 
TBOOL EnableDefaultBeginRender (TBOOL enable)
 
void SetMemoryAllocatorBlock (TMemory::MemBlock *a_pMemBlock)
 
void SetX (TFLOAT value)
 
void SetY (TFLOAT value)
 
void SetWidth (TFLOAT value)
 
void SetHeight (TFLOAT value)
 
void SetMinZ (TFLOAT value)
 
void SetMaxZ (TFLOAT value)
 
TRenderContextGetRenderContext () const
 
void SetBackgroundColor (TUINT8 r, TUINT8 g, TUINT8 b, TUINT8 a)
 
void GetBackgroundColor (TUINT8 &r, TUINT8 &g, TUINT8 &b, TUINT8 &a)
 

Detailed Description

Definition at line 7 of file TViewport.h.

Member Typedef Documentation

◆ ChangeEvent

Definition at line 10 of file TViewport.h.

Member Enumeration Documentation

◆ ChangeEvent_

Enumerator
ChangeEvent_BackgroundColor 
ChangeEvent_MaxZ 
ChangeEvent_MinZ 
ChangeEvent_Height 
ChangeEvent_Width 
ChangeEvent_X 
ChangeEvent_Y 
ChangeEvent_AllocatorBlock 
ChangeEvent_BackgroundClear 
ChangeEvent_DepthClear 

Definition at line 11 of file TViewport.h.

Constructor & Destructor Documentation

◆ TViewport()

TViewport::TViewport ( TBOOL a_bFlag)

Definition at line 12 of file TViewport.cpp.

13{
14 m_MemAllocatorBlock = TNULL;
16 m_ColorR = 0;
17 m_ColorG = 0;
18 m_ColorB = 0;
19 m_ColorA = 0;
20 m_bAllowBackgroundClear = TTRUE;
21 m_bAllowDepthClear = TTRUE;
22 m_bDefaultBeginRender = TTRUE;
23 m_bEnable = TTRUE;
24 m_bInViewport = TFALSE;
25
26 SetWidth( -1.0f );
27 SetHeight( -1.0f );
28
29 if ( a_bFlag )
30 {
32 }
33}
#define TNULL
Definition Typedefs.h:23
#define TFALSE
Definition Typedefs.h:24
#define TTRUE
Definition Typedefs.h:25
virtual TRenderContext * CreateRenderContext()=0
virtual void Unknown1(TViewport *a_pViewport)
void SetHeight(TFLOAT value)
Definition TViewport.cpp:94
void SetWidth(TFLOAT value)
static TFORCEINLINE TRenderInterface * GetSingleton()
Definition TSingleton.h:49

◆ ~TViewport()

TViewport::~TViewport ( )
virtual

Definition at line 35 of file TViewport.cpp.

36{
37 if ( m_pRenderCtx )
38 {
39 delete m_pRenderCtx;
40 m_pRenderCtx = TNULL;
41 }
42}

Member Function Documentation

◆ AllowBackgroundClear()

TBOOL TViewport::AllowBackgroundClear ( TBOOL allow)

Definition at line 168 of file TViewport.cpp.

169{
170 TBOOL oldState = m_bAllowBackgroundClear;
171 m_bAllowBackgroundClear = allow;
173 return oldState;
174}
bool TBOOL
Definition Typedefs.h:6
virtual void ChangeSKU(ChangeEvent a_eEvent)

◆ AllowDepthClear()

TBOOL TViewport::AllowDepthClear ( TBOOL allow)

Definition at line 160 of file TViewport.cpp.

161{
162 TBOOL oldState = m_bAllowDepthClear;
163 m_bAllowDepthClear = allow;
165 return oldState;
166}

◆ Begin()

void TViewport::Begin ( )

Definition at line 183 of file TViewport.cpp.

184{
185 TASSERT( m_bInViewport == TFALSE );
186 m_bInViewport = TTRUE;
187 BeginSKU();
188}
#define TASSERT(X,...)
Definition Defines.h:138
virtual void BeginSKU()

◆ BeginSKU()

void TViewport::BeginSKU ( )
virtual

Definition at line 14 of file TViewport_DX8.cpp.

15{
16 D3DVIEWPORT8 viewport;
17 viewport.X = DWORD( m_pRenderCtx->GetViewportParameters().fX );
18 viewport.Y = DWORD( m_pRenderCtx->GetViewportParameters().fY );
19 viewport.Width = DWORD( m_pRenderCtx->GetViewportParameters().fWidth );
20 viewport.Height = DWORD( m_pRenderCtx->GetViewportParameters().fHeight );
21 viewport.MinZ = 0.0f;
22 viewport.MaxZ = 1.0f;
23
24 TUINT8 r, g, b, a;
25 GetBackgroundColor( r, g, b, a );
26
27 auto pRender = TSTATICCAST( TRenderD3DInterface, TRenderInterface::GetSingleton() );
28 auto pD3DDevice = pRender->GetDirect3DDevice();
29
30 pD3DDevice->SetViewport( &viewport );
31
32 TUINT eClearFlags = ( ( m_bAllowDepthClear != TTRUE ) - 1U & 2 | m_bAllowBackgroundClear == TTRUE );
33
34 if ( eClearFlags != 0 )
35 {
36 pRender->ClearRegion(
37 DWORD( m_pRenderCtx->GetViewportParameters().fX ),
38 DWORD( m_pRenderCtx->GetViewportParameters().fY ),
39 DWORD( m_pRenderCtx->GetViewportParameters().fWidth ),
40 DWORD( m_pRenderCtx->GetViewportParameters().fHeight ),
41 eClearFlags,
42 r,
43 g,
44 b,
45 1.0f,
46 0
47 );
48 }
49}
#define TSTATICCAST(POINTERTYPE, VALUE)
Definition Defines.h:69
unsigned int TUINT
Definition Typedefs.h:8
uint8_t TUINT8
Definition Typedefs.h:17
void GetBackgroundColor(TUINT8 &r, TUINT8 &g, TUINT8 &b, TUINT8 &a)
Definition TViewport.cpp:57

◆ ChangeSKU()

void TViewport::ChangeSKU ( ChangeEvent a_eEvent)
virtual

Definition at line 57 of file TViewport_DX8.cpp.

58{
59}

◆ Enable()

void TViewport::Enable ( TBOOL enable)

Definition at line 155 of file TViewport.cpp.

156{
157 m_bEnable = enable;
158}

◆ EnableDefaultBeginRender()

TBOOL TViewport::EnableDefaultBeginRender ( TBOOL enable)

Definition at line 148 of file TViewport.cpp.

149{
150 TBOOL oldState = m_bDefaultBeginRender;
151 m_bDefaultBeginRender = enable;
152 return oldState;
153}

◆ End()

void TViewport::End ( )

Definition at line 176 of file TViewport.cpp.

177{
178 EndSKU();
179 TASSERT( m_bInViewport == TTRUE );
180 m_bInViewport = TFALSE;
181}
virtual void EndSKU()

◆ EndSKU()

void TViewport::EndSKU ( )
virtual

Definition at line 52 of file TViewport_DX8.cpp.

◆ GetBackgroundColor()

void TViewport::GetBackgroundColor ( TUINT8 & r,
TUINT8 & g,
TUINT8 & b,
TUINT8 & a )

Definition at line 57 of file TViewport.cpp.

58{
59 r = m_ColorR;
60 g = m_ColorG;
61 b = m_ColorB;
62 a = m_ColorA;
63}

◆ GetHeight()

TFLOAT TViewport::GetHeight ( ) const

Definition at line 190 of file TViewport.cpp.

191{
192 return m_pRenderCtx->GetHeight();
193}

◆ GetRenderContext()

TRenderContext * TViewport::GetRenderContext ( ) const

Definition at line 65 of file TViewport.cpp.

66{
67 return m_pRenderCtx;
68}

◆ GetWidth()

TFLOAT TViewport::GetWidth ( ) const

Definition at line 195 of file TViewport.cpp.

196{
197 return m_pRenderCtx->GetWidth();
198}

◆ GetX()

TFLOAT TViewport::GetX ( ) const

Definition at line 205 of file TViewport.cpp.

206{
207 return m_pRenderCtx->GetX();
208}

◆ GetY()

TFLOAT TViewport::GetY ( ) const

Definition at line 200 of file TViewport.cpp.

201{
202 return m_pRenderCtx->GetY();
203}

◆ SetBackgroundColor()

void TViewport::SetBackgroundColor ( TUINT8 r,
TUINT8 g,
TUINT8 b,
TUINT8 a )

Definition at line 44 of file TViewport.cpp.

45{
46 if ( m_ColorR != r || m_ColorG != g || m_ColorB != b || m_ColorA != a )
47 {
48 m_ColorR = r;
49 m_ColorG = g;
50 m_ColorB = b;
51 m_ColorA = a;
52
54 }
55}

◆ SetHeight()

void TViewport::SetHeight ( TFLOAT value)

Definition at line 94 of file TViewport.cpp.

95{
96 TRenderContext::VIEWPORTPARAMS params = m_pRenderCtx->GetViewportParameters();
97
98 if ( params.fHeight != value )
99 {
100 params.fHeight = value;
101 m_pRenderCtx->SetViewportParameters( params );
103 }
104}

◆ SetMaxZ()

void TViewport::SetMaxZ ( TFLOAT value)

Definition at line 70 of file TViewport.cpp.

71{
72 TRenderContext::VIEWPORTPARAMS params = m_pRenderCtx->GetViewportParameters();
73
74 if ( params.fMaxZ != value )
75 {
76 params.fMaxZ = value;
77 m_pRenderCtx->SetViewportParameters( params );
79 }
80}

◆ SetMemoryAllocatorBlock()

void TViewport::SetMemoryAllocatorBlock ( TMemory::MemBlock * a_pMemBlock)

Definition at line 142 of file TViewport.cpp.

143{
144 m_MemAllocatorBlock = a_pMemBlock;
146}

◆ SetMinZ()

void TViewport::SetMinZ ( TFLOAT value)

Definition at line 82 of file TViewport.cpp.

83{
84 TRenderContext::VIEWPORTPARAMS params = m_pRenderCtx->GetViewportParameters();
85
86 if ( params.fMinZ != value )
87 {
88 params.fMinZ = value;
89 m_pRenderCtx->SetViewportParameters( params );
91 }
92}

◆ SetWidth()

void TViewport::SetWidth ( TFLOAT value)

Definition at line 106 of file TViewport.cpp.

107{
108 TRenderContext::VIEWPORTPARAMS params = m_pRenderCtx->GetViewportParameters();
109
110 if ( params.fWidth != value )
111 {
112 params.fWidth = value;
113 m_pRenderCtx->SetViewportParameters( params );
115 }
116}

◆ SetX()

void TViewport::SetX ( TFLOAT value)

Definition at line 130 of file TViewport.cpp.

131{
132 TRenderContext::VIEWPORTPARAMS params = m_pRenderCtx->GetViewportParameters();
133
134 if ( params.fX != value )
135 {
136 params.fX = value;
137 m_pRenderCtx->SetViewportParameters( params );
139 }
140}

◆ SetY()

void TViewport::SetY ( TFLOAT value)

Definition at line 118 of file TViewport.cpp.

119{
120 TRenderContext::VIEWPORTPARAMS params = m_pRenderCtx->GetViewportParameters();
121
122 if ( params.fY != value )
123 {
124 params.fY = value;
125 m_pRenderCtx->SetViewportParameters( params );
127 }
128}

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