Pyrogenesis  trunk
Classes | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | Friends | List of all members
CPatchRData Class Reference

#include <PatchRData.h>

Inheritance diagram for CPatchRData:
Inheritance graph
[legend]
Collaboration diagram for CPatchRData:
Collaboration graph
[legend]

Classes

struct  SBaseVertex
 
struct  SBlendVertex
 
struct  SSideVertex
 
struct  SSplat
 
struct  SWaterVertex
 

Public Member Functions

 CPatchRData (CPatch *patch, CSimulation2 *simulation)
 
 ~CPatchRData ()
 
void Update (CSimulation2 *simulation)
 
void RenderOutline ()
 
void RenderPriorities (CTextRenderer &textRenderer)
 
void RenderWaterSurface (Renderer::Backend::IDeviceCommandContext *deviceCommandContext, Renderer::Backend::IVertexInputLayout *vertexInputLayout)
 
void RenderWaterShore (Renderer::Backend::IDeviceCommandContext *deviceCommandContext, Renderer::Backend::IVertexInputLayout *vertexInputLayout)
 
CPatchGetPatch ()
 
const CBoundingBoxAlignedGetWaterBounds () const
 
- Public Member Functions inherited from CRenderData
 CRenderData ()
 
virtual ~CRenderData ()
 

Static Public Member Functions

static Renderer::Backend::IVertexInputLayoutGetBaseVertexInputLayout ()
 
static Renderer::Backend::IVertexInputLayoutGetBlendVertexInputLayout ()
 
static Renderer::Backend::IVertexInputLayoutGetStreamVertexInputLayout (const bool bindPositionAsTexCoord)
 
static Renderer::Backend::IVertexInputLayoutGetSideVertexInputLayout ()
 
static Renderer::Backend::IVertexInputLayoutGetWaterSurfaceVertexInputLayout (const bool bindWaterData)
 
static Renderer::Backend::IVertexInputLayoutGetWaterShoreVertexInputLayout ()
 
static void RenderBases (Renderer::Backend::IDeviceCommandContext *deviceCommandContext, Renderer::Backend::IVertexInputLayout *vertexInputLayout, const std::vector< CPatchRData *> &patches, const CShaderDefines &context, ShadowMap *shadow)
 
static void RenderBlends (Renderer::Backend::IDeviceCommandContext *deviceCommandContext, Renderer::Backend::IVertexInputLayout *vertexInputLayout, const std::vector< CPatchRData *> &patches, const CShaderDefines &context, ShadowMap *shadow)
 
static void RenderStreams (Renderer::Backend::IDeviceCommandContext *deviceCommandContext, Renderer::Backend::IVertexInputLayout *vertexInputLayout, const std::vector< CPatchRData *> &patches)
 
static void RenderSides (Renderer::Backend::IDeviceCommandContext *deviceCommandContext, Renderer::Backend::IVertexInputLayout *vertexInputLayout, const std::vector< CPatchRData *> &patches)
 
static void PrepareShader (ShadowMap *shadow)
 

Private Member Functions

 cassert (sizeof(SBaseVertex)==32)
 
 cassert (sizeof(SSideVertex)==16)
 
 cassert (sizeof(SBlendVertex)==32)
 
 cassert (sizeof(SWaterVertex)==32)
 
void Build ()
 
void AddBlend (std::vector< SBlendVertex > &blendVertices, std::vector< u16 > &blendIndices, u16 i, u16 j, u8 shape, CTerrainTextureEntry *texture)
 
void BuildBlends ()
 
void BuildIndices ()
 
void BuildVertices ()
 
void BuildSides ()
 
void BuildSide (std::vector< SSideVertex > &vertices, CPatchSideFlags side)
 
void BuildWater ()
 

Private Attributes

CPatchm_Patch
 
CVertexBufferManager::Handle m_VBSides
 
CVertexBufferManager::Handle m_VBBase
 
CVertexBufferManager::Handle m_VBBaseIndices
 
CVertexBufferManager::Handle m_VBBlends
 
CVertexBufferManager::Handle m_VBBlendIndices
 
std::vector< SSplatm_Splats
 
std::vector< SSplatm_BlendSplats
 
CBoundingBoxAligned m_WaterBounds
 
CVertexBufferManager::Handle m_VBWater
 
CVertexBufferManager::Handle m_VBWaterShore
 
CVertexBufferManager::Handle m_VBWaterIndices
 
CVertexBufferManager::Handle m_VBWaterIndicesShore
 
CSimulation2m_Simulation
 

Static Private Attributes

static const ssize_t water_cell_size = 1
 

Friends

struct SBlendStackItem
 

Additional Inherited Members

- Public Attributes inherited from CRenderData
int m_UpdateFlags
 

Constructor & Destructor Documentation

◆ CPatchRData()

CPatchRData::CPatchRData ( CPatch patch,
CSimulation2 simulation 
)

◆ ~CPatchRData()

CPatchRData::~CPatchRData ( )
default

Member Function Documentation

◆ AddBlend()

void CPatchRData::AddBlend ( std::vector< SBlendVertex > &  blendVertices,
std::vector< u16 > &  blendIndices,
u16  i,
u16  j,
u8  shape,
CTerrainTextureEntry texture 
)
private

◆ Build()

void CPatchRData::Build ( )
private

◆ BuildBlends()

void CPatchRData::BuildBlends ( )
private

◆ BuildIndices()

void CPatchRData::BuildIndices ( )
private

◆ BuildSide()

void CPatchRData::BuildSide ( std::vector< SSideVertex > &  vertices,
CPatchSideFlags  side 
)
private

◆ BuildSides()

void CPatchRData::BuildSides ( )
private

◆ BuildVertices()

void CPatchRData::BuildVertices ( )
private

◆ BuildWater()

void CPatchRData::BuildWater ( )
private

◆ cassert() [1/4]

CPatchRData::cassert ( sizeof(SBaseVertex = =32)
private

◆ cassert() [2/4]

CPatchRData::cassert ( sizeof(SSideVertex = =16)
private

◆ cassert() [3/4]

CPatchRData::cassert ( sizeof(SBlendVertex = =32)
private

◆ cassert() [4/4]

CPatchRData::cassert ( sizeof(SWaterVertex = =32)
private

◆ GetBaseVertexInputLayout()

Renderer::Backend::IVertexInputLayout * CPatchRData::GetBaseVertexInputLayout ( )
static

◆ GetBlendVertexInputLayout()

Renderer::Backend::IVertexInputLayout * CPatchRData::GetBlendVertexInputLayout ( )
static

◆ GetPatch()

CPatch* CPatchRData::GetPatch ( )
inline

◆ GetSideVertexInputLayout()

Renderer::Backend::IVertexInputLayout * CPatchRData::GetSideVertexInputLayout ( )
static

◆ GetStreamVertexInputLayout()

Renderer::Backend::IVertexInputLayout * CPatchRData::GetStreamVertexInputLayout ( const bool  bindPositionAsTexCoord)
static

◆ GetWaterBounds()

const CBoundingBoxAligned& CPatchRData::GetWaterBounds ( ) const
inline

◆ GetWaterShoreVertexInputLayout()

Renderer::Backend::IVertexInputLayout * CPatchRData::GetWaterShoreVertexInputLayout ( )
static

◆ GetWaterSurfaceVertexInputLayout()

Renderer::Backend::IVertexInputLayout * CPatchRData::GetWaterSurfaceVertexInputLayout ( const bool  bindWaterData)
static

◆ PrepareShader()

static void CPatchRData::PrepareShader ( ShadowMap shadow)
static

◆ RenderBases()

void CPatchRData::RenderBases ( Renderer::Backend::IDeviceCommandContext deviceCommandContext,
Renderer::Backend::IVertexInputLayout vertexInputLayout,
const std::vector< CPatchRData *> &  patches,
const CShaderDefines context,
ShadowMap shadow 
)
static

◆ RenderBlends()

void CPatchRData::RenderBlends ( Renderer::Backend::IDeviceCommandContext deviceCommandContext,
Renderer::Backend::IVertexInputLayout vertexInputLayout,
const std::vector< CPatchRData *> &  patches,
const CShaderDefines context,
ShadowMap shadow 
)
static

◆ RenderOutline()

void CPatchRData::RenderOutline ( )

◆ RenderPriorities()

void CPatchRData::RenderPriorities ( CTextRenderer textRenderer)

◆ RenderSides()

void CPatchRData::RenderSides ( Renderer::Backend::IDeviceCommandContext deviceCommandContext,
Renderer::Backend::IVertexInputLayout vertexInputLayout,
const std::vector< CPatchRData *> &  patches 
)
static

◆ RenderStreams()

void CPatchRData::RenderStreams ( Renderer::Backend::IDeviceCommandContext deviceCommandContext,
Renderer::Backend::IVertexInputLayout vertexInputLayout,
const std::vector< CPatchRData *> &  patches 
)
static

◆ RenderWaterShore()

void CPatchRData::RenderWaterShore ( Renderer::Backend::IDeviceCommandContext deviceCommandContext,
Renderer::Backend::IVertexInputLayout vertexInputLayout 
)

◆ RenderWaterSurface()

void CPatchRData::RenderWaterSurface ( Renderer::Backend::IDeviceCommandContext deviceCommandContext,
Renderer::Backend::IVertexInputLayout vertexInputLayout 
)

◆ Update()

void CPatchRData::Update ( CSimulation2 simulation)

Friends And Related Function Documentation

◆ SBlendStackItem

friend struct SBlendStackItem
friend

Member Data Documentation

◆ m_BlendSplats

std::vector<SSplat> CPatchRData::m_BlendSplats
private

◆ m_Patch

CPatch* CPatchRData::m_Patch
private

◆ m_Simulation

CSimulation2* CPatchRData::m_Simulation
private

◆ m_Splats

std::vector<SSplat> CPatchRData::m_Splats
private

◆ m_VBBase

CVertexBufferManager::Handle CPatchRData::m_VBBase
private

◆ m_VBBaseIndices

CVertexBufferManager::Handle CPatchRData::m_VBBaseIndices
private

◆ m_VBBlendIndices

CVertexBufferManager::Handle CPatchRData::m_VBBlendIndices
private

◆ m_VBBlends

CVertexBufferManager::Handle CPatchRData::m_VBBlends
private

◆ m_VBSides

CVertexBufferManager::Handle CPatchRData::m_VBSides
private

◆ m_VBWater

CVertexBufferManager::Handle CPatchRData::m_VBWater
private

◆ m_VBWaterIndices

CVertexBufferManager::Handle CPatchRData::m_VBWaterIndices
private

◆ m_VBWaterIndicesShore

CVertexBufferManager::Handle CPatchRData::m_VBWaterIndicesShore
private

◆ m_VBWaterShore

CVertexBufferManager::Handle CPatchRData::m_VBWaterShore
private

◆ m_WaterBounds

CBoundingBoxAligned CPatchRData::m_WaterBounds
private

◆ water_cell_size

const ssize_t CPatchRData::water_cell_size = 1
staticprivate

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