18#ifndef INCLUDED_PATCHRDATA
19#define INCLUDED_PATCHRDATA
50 const bool bindPositionAsTexCoord);
54 const bool bindWaterData);
83 const std::vector<CPatchRData*>& patches);
87 const std::vector<CPatchRData*>& patches);
149 void AddBlend(std::vector<SBlendVertex>& blendVertices, std::vector<u16>& blendIndices,
CPatchSideFlags
Definition: Patch.h:39
Definition: BoundingBoxAligned.h:34
Definition: PatchRData.h:42
void BuildSides()
Definition: PatchRData.cpp:749
void BuildVertices()
Definition: PatchRData.cpp:647
static void PrepareShader(ShadowMap *shadow)
void AddBlend(std::vector< SBlendVertex > &blendVertices, std::vector< u16 > &blendIndices, u16 i, u16 j, u8 shape, CTerrainTextureEntry *texture)
Definition: PatchRData.cpp:443
CSimulation2 * m_Simulation
Definition: PatchRData.h:194
static Renderer::Backend::IVertexInputLayout * GetSideVertexInputLayout()
Definition: PatchRData.cpp:145
void BuildIndices()
Definition: PatchRData.cpp:550
static Renderer::Backend::IVertexInputLayout * GetBaseVertexInputLayout()
Definition: PatchRData.cpp:68
static Renderer::Backend::IVertexInputLayout * GetWaterShoreVertexInputLayout()
Definition: PatchRData.cpp:190
CPatch * m_Patch
Definition: PatchRData.h:160
static Renderer::Backend::IVertexInputLayout * GetStreamVertexInputLayout(const bool bindPositionAsTexCoord)
Definition: PatchRData.cpp:114
std::vector< SSplat > m_BlendSplats
Definition: PatchRData.h:181
static Renderer::Backend::IVertexInputLayout * GetWaterSurfaceVertexInputLayout(const bool bindWaterData)
Definition: PatchRData.cpp:158
CVertexBufferManager::Handle m_VBWaterIndices
Definition: PatchRData.h:191
static void RenderBlends(Renderer::Backend::IDeviceCommandContext *deviceCommandContext, Renderer::Backend::IVertexInputLayout *vertexInputLayout, const std::vector< CPatchRData * > &patches, const CShaderDefines &context, ShadowMap *shadow)
Definition: PatchRData.cpp:1021
CVertexBufferManager::Handle m_VBBase
Definition: PatchRData.h:166
void RenderOutline()
Definition: PatchRData.cpp:1281
void RenderWaterShore(Renderer::Backend::IDeviceCommandContext *deviceCommandContext, Renderer::Backend::IVertexInputLayout *vertexInputLayout)
Definition: PatchRData.cpp:1605
static const ssize_t water_cell_size
Definition: PatchRData.h:203
const CBoundingBoxAligned & GetWaterBounds() const
Definition: PatchRData.h:70
CVertexBufferManager::Handle m_VBBlendIndices
Definition: PatchRData.h:175
CPatch * GetPatch()
Definition: PatchRData.h:68
void BuildBlends()
Definition: PatchRData.cpp:271
CVertexBufferManager::Handle m_VBWaterIndicesShore
Definition: PatchRData.h:192
void Build()
Definition: PatchRData.cpp:790
void RenderPriorities(CTextRenderer &textRenderer)
Definition: PatchRData.cpp:1347
static void RenderStreams(Renderer::Backend::IDeviceCommandContext *deviceCommandContext, Renderer::Backend::IVertexInputLayout *vertexInputLayout, const std::vector< CPatchRData * > &patches)
Definition: PatchRData.cpp:1224
CVertexBufferManager::Handle m_VBBaseIndices
Definition: PatchRData.h:169
void Update(CSimulation2 *simulation)
Definition: PatchRData.cpp:799
CVertexBufferManager::Handle m_VBBlends
Definition: PatchRData.h:172
CBoundingBoxAligned m_WaterBounds
Definition: PatchRData.h:184
static void RenderSides(Renderer::Backend::IDeviceCommandContext *deviceCommandContext, Renderer::Backend::IVertexInputLayout *vertexInputLayout, const std::vector< CPatchRData * > &patches)
Definition: PatchRData.cpp:1313
CPatchRData(CPatch *patch, CSimulation2 *simulation)
Definition: PatchRData.cpp:206
cassert(sizeof(SSideVertex)==16)
cassert(sizeof(SWaterVertex)==32)
CVertexBufferManager::Handle m_VBSides
Definition: PatchRData.h:163
void RenderWaterSurface(Renderer::Backend::IDeviceCommandContext *deviceCommandContext, Renderer::Backend::IVertexInputLayout *vertexInputLayout)
Definition: PatchRData.cpp:1578
void BuildWater()
Definition: PatchRData.cpp:1379
static Renderer::Backend::IVertexInputLayout * GetBlendVertexInputLayout()
Definition: PatchRData.cpp:89
std::vector< SSplat > m_Splats
Definition: PatchRData.h:178
static void RenderBases(Renderer::Backend::IDeviceCommandContext *deviceCommandContext, Renderer::Backend::IVertexInputLayout *vertexInputLayout, const std::vector< CPatchRData * > &patches, const CShaderDefines &context, ShadowMap *shadow)
Definition: PatchRData.cpp:861
cassert(sizeof(SBaseVertex)==32)
void BuildSide(std::vector< SSideVertex > &vertices, CPatchSideFlags side)
Definition: PatchRData.cpp:696
CVertexBufferManager::Handle m_VBWater
Definition: PatchRData.h:187
CVertexBufferManager::Handle m_VBWaterShore
Definition: PatchRData.h:188
cassert(sizeof(SBlendVertex)==32)
Definition: RenderableObject.h:41
Represents a mapping of name strings to value strings, for use with #if and #ifdef and similar condit...
Definition: ShaderDefines.h:147
Public API for simulation system.
Definition: Simulation2.h:47
Definition: TerrainTextureEntry.h:33
Definition: TextRenderer.h:34
Definition: Vector2D.h:32
Definition: Vector3D.h:31
Definition: VertexBufferManager.h:49
Definition: IDeviceCommandContext.h:42
Class ShadowMap: Maintain the shadow map texture and perform necessary OpenGL setup,...
Definition: ShadowMap.h:39
Definition: PatchRData.h:107
CVector3D m_Normal
Definition: PatchRData.h:110
u8 m_Padding[8]
Definition: PatchRData.h:112
CVector3D m_Position
Definition: PatchRData.h:109
Definition: PatchRData.h:126
CVector3D m_Position
Definition: PatchRData.h:128
float m_AlphaUVs[2]
Definition: PatchRData.h:130
CVector3D m_Normal
Definition: PatchRData.h:131
Definition: PatchRData.h:117
CVector3D m_Position
Definition: PatchRData.h:119
u8 m_Padding[4]
Definition: PatchRData.h:121
Definition: PatchRData.h:95
SSplat()
Definition: PatchRData.h:96
size_t m_IndexCount
Definition: PatchRData.h:103
CTerrainTextureEntry * m_Texture
Definition: PatchRData.h:99
size_t m_IndexStart
Definition: PatchRData.h:101
Definition: PatchRData.h:137
CVector3D m_Position
Definition: PatchRData.h:139
u8 m_Padding[12]
Definition: PatchRData.h:142
CVector2D m_WaterData
Definition: PatchRData.h:140
Helper structure for RenderBlends.
Definition: PatchRData.cpp:1008
uint8_t u8
Definition: types.h:37
uint16_t u16
Definition: types.h:38
intptr_t ssize_t
Definition: wposix_types.h:82