Add code that should draw the mesh
This commit is contained in:
parent
6dd72e5439
commit
fc65d43ae8
20 changed files with 395 additions and 171 deletions
|
|
@ -56,8 +56,8 @@ VkRSBuffers::VkRSBuffers(VulkanRenderDevice* fb)
|
|||
.DebugName("Flatbuffer.IndexBuffer")
|
||||
.Create(fb->GetDevice());
|
||||
|
||||
MatrixBuffer = std::make_unique<VkStreamBuffer>(fb, sizeof(MatricesUBO), 50000);
|
||||
StreamBuffer = std::make_unique<VkStreamBuffer>(fb, sizeof(StreamUBO), 300);
|
||||
MatrixBuffer = std::make_unique<VkMatrixBufferWriter>(fb);
|
||||
StreamBuffer = std::make_unique<VkStreamBufferWriter>(fb);
|
||||
|
||||
Viewpoint.BlockAlign = (sizeof(HWViewpointUniforms) + fb->uniformblockalignment - 1) / fb->uniformblockalignment * fb->uniformblockalignment;
|
||||
|
||||
|
|
@ -149,9 +149,11 @@ uint32_t VkStreamBuffer::NextStreamDataBlock()
|
|||
return mStreamDataOffset;
|
||||
}
|
||||
|
||||
VkStreamBufferWriter::VkStreamBufferWriter(VkRSBuffers* rsbuffers)
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
VkStreamBufferWriter::VkStreamBufferWriter(VulkanRenderDevice* fb)
|
||||
{
|
||||
mBuffer = rsbuffers->StreamBuffer.get();
|
||||
mBuffer = std::make_unique<VkStreamBuffer>(fb, sizeof(StreamUBO), 300);
|
||||
}
|
||||
|
||||
bool VkStreamBufferWriter::Write(const StreamData& data)
|
||||
|
|
@ -178,9 +180,9 @@ void VkStreamBufferWriter::Reset()
|
|||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
VkMatrixBufferWriter::VkMatrixBufferWriter(VkRSBuffers* rsbuffers)
|
||||
VkMatrixBufferWriter::VkMatrixBufferWriter(VulkanRenderDevice* fb)
|
||||
{
|
||||
mBuffer = rsbuffers->MatrixBuffer.get();
|
||||
mBuffer = std::make_unique<VkStreamBuffer>(fb, sizeof(MatricesUBO), 50000);
|
||||
}
|
||||
|
||||
bool VkMatrixBufferWriter::Write(const MatricesUBO& matrices)
|
||||
|
|
|
|||
|
|
@ -4,7 +4,8 @@
|
|||
#include "vulkan/buffers/vk_hwbuffer.h"
|
||||
#include "vulkan/shaders/vk_shader.h"
|
||||
|
||||
class VkStreamBuffer;
|
||||
class VkMatrixBufferWriter;
|
||||
class VkStreamBufferWriter;
|
||||
struct FFlatVertex;
|
||||
|
||||
class VkRSBuffers
|
||||
|
|
@ -50,8 +51,8 @@ public:
|
|||
void* Data = nullptr;
|
||||
} Bonebuffer;
|
||||
|
||||
std::unique_ptr<VkStreamBuffer> MatrixBuffer;
|
||||
std::unique_ptr<VkStreamBuffer> StreamBuffer;
|
||||
std::unique_ptr<VkMatrixBufferWriter> MatrixBuffer;
|
||||
std::unique_ptr<VkStreamBufferWriter> StreamBuffer;
|
||||
};
|
||||
|
||||
class VkStreamBuffer
|
||||
|
|
@ -74,16 +75,18 @@ private:
|
|||
class VkStreamBufferWriter
|
||||
{
|
||||
public:
|
||||
VkStreamBufferWriter(VkRSBuffers* rsbuffers);
|
||||
VkStreamBufferWriter(VulkanRenderDevice* fb);
|
||||
|
||||
bool Write(const StreamData& data);
|
||||
void Reset();
|
||||
|
||||
uint32_t DataIndex() const { return mDataIndex; }
|
||||
uint32_t StreamDataOffset() const { return mStreamDataOffset; }
|
||||
uint32_t Offset() const { return mStreamDataOffset; }
|
||||
|
||||
VulkanBuffer* UBO() const { return mBuffer->UBO.get(); }
|
||||
|
||||
private:
|
||||
VkStreamBuffer* mBuffer;
|
||||
std::unique_ptr<VkStreamBuffer> mBuffer;
|
||||
uint32_t mDataIndex = MAX_STREAM_DATA - 1;
|
||||
uint32_t mStreamDataOffset = 0;
|
||||
};
|
||||
|
|
@ -91,14 +94,16 @@ private:
|
|||
class VkMatrixBufferWriter
|
||||
{
|
||||
public:
|
||||
VkMatrixBufferWriter(VkRSBuffers* rsbuffers);
|
||||
VkMatrixBufferWriter(VulkanRenderDevice* fb);
|
||||
|
||||
bool Write(const MatricesUBO& matrices);
|
||||
void Reset();
|
||||
|
||||
uint32_t Offset() const { return mOffset; }
|
||||
|
||||
VulkanBuffer* UBO() const { return mBuffer->UBO.get(); }
|
||||
|
||||
private:
|
||||
VkStreamBuffer* mBuffer;
|
||||
std::unique_ptr<VkStreamBuffer> mBuffer;
|
||||
uint32_t mOffset = 0;
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue