Changeset View
Changeset View
Standalone View
Standalone View
source/renderer/DecalRData.h
Show All 22 Lines | |||||
#include "maths/Vector3D.h" | #include "maths/Vector3D.h" | ||||
#include "renderer/backend/gl/DeviceCommandContext.h" | #include "renderer/backend/gl/DeviceCommandContext.h" | ||||
#include "renderer/VertexBufferManager.h" | #include "renderer/VertexBufferManager.h" | ||||
#include <vector> | #include <vector> | ||||
class CModelDecal; | class CModelDecal; | ||||
class CShaderDefines; | class CShaderDefines; | ||||
class CSimulation2; | |||||
class ShadowMap; | class ShadowMap; | ||||
class CDecalRData : public CRenderData | class CDecalRData : public CRenderData | ||||
{ | { | ||||
public: | public: | ||||
CDecalRData(CModelDecal* decal, CSimulation2* simulation); | CDecalRData(CModelDecal* decal); | ||||
~CDecalRData(); | ~CDecalRData(); | ||||
void Update(CSimulation2* simulation); | void Update(); | ||||
static void RenderDecals( | static void RenderDecals( | ||||
Renderer::Backend::GL::CDeviceCommandContext* deviceCommandContext, | Renderer::Backend::GL::CDeviceCommandContext* deviceCommandContext, | ||||
const std::vector<CDecalRData*>& decals, const CShaderDefines& context, ShadowMap* shadow); | const std::vector<CDecalRData*>& decals, const CShaderDefines& context, ShadowMap* shadow); | ||||
CModelDecal* GetDecal() { return m_Decal; } | CModelDecal* GetDecal() { return m_Decal; } | ||||
private: | private: | ||||
void BuildVertexData(); | void BuildVertexData(); | ||||
struct SDecalVertex | struct SDecalVertex | ||||
{ | { | ||||
CVector3D m_Position; | CVector3D m_Position; | ||||
CVector3D m_Normal; | CVector3D m_Normal; | ||||
CVector2D m_UV; | CVector2D m_UV; | ||||
}; | }; | ||||
cassert(sizeof(SDecalVertex) == 32); | cassert(sizeof(SDecalVertex) == 32); | ||||
CVertexBufferManager::Handle m_VBDecals; | CVertexBufferManager::Handle m_VBDecals; | ||||
CVertexBufferManager::Handle m_VBDecalsIndices; | CVertexBufferManager::Handle m_VBDecalsIndices; | ||||
CModelDecal* m_Decal; | CModelDecal* m_Decal; | ||||
CSimulation2* m_Simulation; | |||||
}; | }; | ||||
#endif // INCLUDED_DECALRDATA | #endif // INCLUDED_DECALRDATA |
Wildfire Games · Phabricator