metal: implement storage buffer bindings

This commit is contained in:
Alex Szpakowski
2021-12-25 14:21:45 -04:00
parent c6e4cfdc64
commit 30fe00d767
3 changed files with 124 additions and 50 deletions
+4 -1
View File
@@ -47,7 +47,6 @@ namespace metal
{
static const int DEFAULT_VERTEX_BUFFER_BINDING = 1;
static const int VERTEX_BUFFER_BINDING_START = 2;
class Shader final : public love::graphics::Shader
{
@@ -110,6 +109,8 @@ public:
id<MTLComputePipelineState> getComputePipeline() const { return computePipeline; }
static int getUniformBufferBinding();
int getFirstVertexBufferBinding() const { return firstVertexBufferBinding; }
const std::vector<TextureBinding> &getTextureBindings() const { return textureBindings; }
const std::vector<BufferBinding> &getBufferBindings() const { return bufferBindings; }
@@ -139,6 +140,8 @@ private:
size_t localUniformBufferSize;
size_t builtinUniformDataOffset;
int firstVertexBufferBinding;
std::map<std::string, int> attributes;
std::vector<TextureBinding> textureBindings;