Exemple #1
0
        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);
        }
Exemple #2
0
        public void BindShaderBuffer(ShaderBuffer buffer, string uniformBlockName)
        {
            var binding = new ShaderBufferBinding()
            {
                Buffer = buffer,
                BlockName = uniformBlockName,
            };

            shaderBufferBindings.Add(binding);

            rebindShaderBufferBinding(binding);
        }