6 #include "BlockCommon.h" 7 #include "BlockTemplate.h" 20 static void ReleaseTaskPool();
22 inline uint16_t GetTemplateId()
24 return m_pTemplate->GetID();
27 inline uint16_t GetUserData()
37 void SetVertexBuffer(VertexBufferDevicePtr_type val) {
38 m_pVertexBuffer = val;
41 inline VertexBufferDevicePtr_type GetVertexBuffer()
43 return m_pVertexBuffer;
46 inline int32_t GetVertexOfs()
49 return m_nVertexOffset;
52 inline int32_t GetIndexOfs()
55 return m_nVertexOffset / 4 * 6;
58 int32_t GetVertexCount();
60 int32_t GetPrimitiveCount();
62 inline void SetRenderOrder(uint32_t renderOrder)
64 m_renderOrder = renderOrder;
67 inline Uint16x3& GetMinBlockPos() {
return m_minBlockId_ws; }
73 inline int32_t GetRenderOrder()
78 void AddRectFace(int32 nFaceCount);
80 void Init(
BlockTemplate* pTemplate, uint16_t nBlockData, uint32_t vertexOffset,
81 VertexBufferDevicePtr_type pBuffer,
Uint16x3& minBlockId_ws);
82 void Init(
BlockTemplate* pTemplate, uint16_t nBlockData, uint32_t vertexOffset,
83 Uint16x3& minBlockId_ws, int32 nBufferIndex);
85 int32 GetBufferIndex()
const {
return m_pBufferIndex; }
86 void SetBufferIndex(int32 val) { m_pBufferIndex = val; }
89 static std::vector<BlockRenderTask*> g_renderTaskPool;
90 static std::map<int,bool> g_emptySlotIndices;
91 static std::mutex g_renderTaskMutex;
92 uint32_t m_renderOrder;
93 uint32_t m_nVertexOffset;
94 uint16_t m_nRectFaceCount;
95 int16_t m_internalIndex;
100 uint16_t m_nBlockData;
104 VertexBufferDevicePtr_type m_pVertexBuffer;
105 int32 m_pBufferIndex;
113 inline void SetInternalIndex(int32_t index)
115 m_internalIndex = index;
118 int32_t GetInternalIndex()
120 return m_internalIndex;
different physics engine has different winding order.
Definition: EventBinding.h:32
basic block world coordinate
Definition: BlockCoordinate.h:72
block template base class.
Definition: BlockTemplate.h:15
Definition: BlockRenderTask.h:13