protected void rebindShaderBufferBinding(ShaderBufferBinding binding) { var location = binding.Buffer.GetProgramResourceIndex(handle, binding.BlockName); // not really nice but works for now if (binding.Buffer.Type == ShaderBufferType.UBO) GL.UniformBlockBinding(handle, location, binding.Buffer.BufferIndex); else GL.ShaderStorageBlockBinding(handle, location, binding.Buffer.BufferIndex); }
public void BindShaderBuffer(ShaderBuffer buffer, string uniformBlockName) { var binding = new ShaderBufferBinding() { Buffer = buffer, BlockName = uniformBlockName, }; shaderBufferBindings.Add(binding); rebindShaderBufferBinding(binding); }