#pragma once #include #include #include #include "Block.h" struct ChunkShaderInfo { Framework::Point pos; unsigned int blockCount; }; class DX12ChunkData : public ReferenceCounter { private: Framework::DX12Buffer* aabbs; Framework::DX12Buffer* chunkInfoBuffer; Framework::DX12Buffer* blasScratchBuffer; Framework::DX12Buffer* blasBuffer; Framework::DX12Buffer* blockIndexBuffer; Framework::DX12Buffer* textureIdBuffer; Framework::Point chunkCenter; Framework::Array blockIndices; Framework::Array textureIds; bool changed; bool bufferChanged; public: DX12ChunkData(Framework::Point center); ~DX12ChunkData(); Framework::DX12Buffer* zChunkInfoBuffer() const; Framework::DX12Buffer* zBlasBuffer() const; Framework::DX12Buffer* zBlockIndexBuffer() const; Framework::DX12Buffer* zTextureIdBuffer() const; void setBlock(int index, Block* zBlock); void updateBuffers( ID3D12Device5* zDevice, Framework::DX12CommandQueue* zQueue); };