bind buffer and use in vertex buffer

This commit is contained in:
Gregory Wells
2025-07-21 09:43:09 -04:00
parent 484bea4762
commit 6ac58529db

View File

@@ -114,29 +114,11 @@ void metalDrawIndexed(gnCommandBufferHandle buffer, gnIndexType type, int indexC
void metalBindUniform(gnCommandBufferHandle buffer, gnUniform uniform, uint32_t set) {
id<MTLRenderCommandEncoder> encoder = (id<MTLRenderCommandEncoder>)buffer->commandBuffer->encoder;
[encoder useResources:uniform->uniform->usedResources count:uniform->uniform->usedResourceCount usage:MTLResourceUsageRead stages:MTLRenderStageFragment];
[encoder setFragmentBuffer:uniform->uniform->argumentBuffer offset:0 atIndex:2];
// for (int i = 0; i < uniform->uniform->bindingCount; i++) {
// if (uniform->uniform->bindings[i].type == GN_UNIFORM_BUFFER_DESCRIPTOR) {
// gnBufferUniformInfo info = *(gnBufferUniformInfo*)uniform->uniform->bindings[i].data;
// [encoder setVertexBuffer:info.buffer->buffer->buffer
// offset:info.offset
// atIndex:buffer->commandBuffer->boundGraphcisPipeline->graphicsPipeline->vertexShaderMaps.sets[set].bindings[info.binding]
// ];
// } else if (uniform->uniform->bindings[i].type == GN_SHADER_STORE_BUFFER_DESCRIPTOR) {
// gnStorageUniformInfo info = *(gnStorageUniformInfo*)uniform->uniform->bindings[i].data;
// [encoder setVertexBuffer:info.buffer->buffer->buffer
// offset:info.offset
// atIndex:buffer->commandBuffer->boundGraphcisPipeline->graphicsPipeline->vertexShaderMaps.sets[set].bindings[info.binding]
// ];
// } else if (uniform->uniform->bindings[i].type == GN_IMAGE_DESCRIPTOR) {
// gnImageUniformInfo info = *(gnImageUniformInfo*)uniform->uniform->bindings[i].data;
// uint32_t index = buffer->commandBuffer->boundGraphcisPipeline->graphicsPipeline->fragmentShaderMaps.sets[set].bindings[info.binding];
// [encoder setFragmentTexture:info.texture->texture->texture atIndex:index];
// [encoder setFragmentSamplerState:info.texture->texture->sampler atIndex:index];
// }
// }
[encoder useResources:uniform->uniform->usedResources count:uniform->uniform->usedResourceCount usage:MTLResourceUsageRead stages:MTLRenderStageVertex | MTLRenderStageFragment];
[encoder setVertexBuffer:uniform->uniform->argumentBuffer offset:0 atIndex:(set + 1)];
[encoder setFragmentBuffer:uniform->uniform->argumentBuffer offset:0 atIndex:(set + 1)];
}
void metalBindVertexBytes(gnCommandBufferHandle buffer, gnPushConstantLayout layout, void* data) {