Refactor Vertex Shader input vertex layout to use GPUVertexLayout defined on Vertex Buffer rather than Vertex Shader

#3044 #2667
This commit is contained in:
Wojtek Figat
2024-12-15 22:10:45 +01:00
parent 666efb7675
commit b3f37ca041
66 changed files with 786 additions and 579 deletions

View File

@@ -127,6 +127,9 @@ protected:
/// </summary>
class FLAXENGINE_API DynamicVertexBuffer : public DynamicBuffer
{
private:
GPUVertexLayout* _layout;
public:
/// <summary>
/// Init
@@ -134,11 +137,16 @@ public:
/// <param name="initialCapacity">Initial capacity of the buffer (in bytes)</param>
/// <param name="stride">Stride in bytes</param>
/// <param name="name">Buffer name</param>
DynamicVertexBuffer(uint32 initialCapacity, uint32 stride, const String& name = String::Empty)
/// <param name="layout">The vertex buffer layout.</param>
DynamicVertexBuffer(uint32 initialCapacity, uint32 stride, const String& name = String::Empty, GPUVertexLayout* layout = nullptr)
: DynamicBuffer(initialCapacity, stride, name)
, _layout(layout)
{
}
// Sets the vertex buffer layout.
void SetLayout(GPUVertexLayout* layout);
protected:
// [DynamicBuffer]
void InitDesc(GPUBufferDescription& desc, int32 numElements) override;