Exemplo n.º 1
0
        public GLActiveUniformBlockInfo GetActiveUniformBlockInfo(int programId, int activeIndex)
        {
            int length;
            var queries = new ProgramProperty[] {
                ProgramProperty.BufferBinding,
                ProgramProperty.BufferDataSize,
                ProgramProperty.ReferencedByFragmentShader,
                ProgramProperty.ReferencedByVertexShader,
                ProgramProperty.ReferencedByGeometryShader,
                ProgramProperty.ReferencedByTessControlShader,
                ProgramProperty.ReferencedByTessEvaluationShader,
            };
            var props = new int[queries.Length];

            GL.GetProgramResource(programId, ProgramInterface.UniformBlock, activeIndex, queries.Length, queries, props.Length, out length, props);

            mErrHandler.CheckGLError();

            int stageIndex = 2;
            MgShaderStageFlagBits stage = props[stageIndex] != 0 ? (MgShaderStageFlagBits.FRAGMENT_BIT) : 0;

            stageIndex += 1;
            stage      |= props[stageIndex] != 0 ? (MgShaderStageFlagBits.VERTEX_BIT) : 0;

            stageIndex += 1;
            stage      |= props[stageIndex] != 0 ? (MgShaderStageFlagBits.GEOMETRY_BIT) : 0;

            stageIndex += 1;
            stage      |= props[stageIndex] != 0 ? (MgShaderStageFlagBits.TESSELLATION_CONTROL_BIT) : 0;

            stageIndex += 1;
            stage      |= props[stageIndex] != 0 ? (MgShaderStageFlagBits.TESSELLATION_EVALUATION_BIT) : 0;


            return(new GLActiveUniformBlockInfo
            {
                BindingIndex = props[0],
                Stride = props[1],
                Stage = stage,
            });
        }
Exemplo n.º 2
0
 public void GenRenderbuffer(out int id)
 {
     GL.Ext.GenRenderbuffers(1, out id);
     mErrHandler.CheckGLError();
 }
Exemplo n.º 3
0
 public void GenRenderbuffer(out int renderbuffer)
 {
     GL.GenRenderbuffers(1, out renderbuffer);
     mErrHandler.CheckGLError();
 }
Exemplo n.º 4
0
 public void AttachShaderToProgram(int programID, int shader)
 {
     GL.AttachShader(programID, shader);
     mErrHandler.CheckGLError();
 }