Beispiel #1
0
        public void Link()
        {
            GL.LinkProgram(ProgramID);

            string log = GL.GetProgramInfoLog(ProgramID);

            if (log.Length != 0)
            {
                Console.WriteLine(log);
            }

            int attributeCount, uniformCount;

            GL.GetProgram(ProgramID, GetProgramParameterName.ActiveAttributes, out attributeCount);
            GL.GetProgram(ProgramID, GetProgramParameterName.ActiveUniforms, out uniformCount);

            AttributeCount = attributeCount;
            UniformCount   = uniformCount;

            for (int i = 0; i < AttributeCount; i++)
            {
                AttributeInfo info   = new AttributeInfo();
                int           length = 0;

                StringBuilder name = new StringBuilder(64);

                GL.GetActiveAttrib(ProgramID, i, 512, out length, out info.Size, out info.Type, name);

                info.Name = name.ToString();
                Attributes.Add(name.ToString(), info);
                info.Address = GL.GetAttribLocation(ProgramID, info.Name);
            }

            for (int i = 0; i < UniformCount; i++)
            {
                UniformInfo info   = new UniformInfo();
                int         length = 0;

                StringBuilder name = new StringBuilder(64);

                GL.GetActiveUniform(ProgramID, i, 512, out length, out info.Size, out info.Type, name);

                info.Name = name.ToString();
                Uniforms.Add(name.ToString(), info);
                info.Address = GL.GetUniformLocation(ProgramID, info.Name);
            }
        }
Beispiel #2
0
        public void Link()
        {
            GL.LinkProgram(ProgramID);

            string log = GL.GetProgramInfoLog(ProgramID);
            if (log.Length != 0)
            {
                Console.WriteLine(log);
            }

            int attributeCount, uniformCount;
            GL.GetProgram(ProgramID, GetProgramParameterName.ActiveAttributes, out attributeCount);
            GL.GetProgram(ProgramID, GetProgramParameterName.ActiveUniforms, out uniformCount);

            AttributeCount = attributeCount;
            UniformCount = uniformCount;

            for (int i = 0; i < AttributeCount; i++)
            {
                AttributeInfo info = new AttributeInfo();
                int length = 0;

                StringBuilder name = new StringBuilder(64);

                GL.GetActiveAttrib(ProgramID, i, 512, out length, out info.Size, out info.Type, name);

                info.Name = name.ToString();
                Attributes.Add(name.ToString(), info);
                info.Address = GL.GetAttribLocation(ProgramID, info.Name);
            }

            for (int i = 0; i < UniformCount; i++)
            {
                UniformInfo info = new UniformInfo();
                int length = 0;

                StringBuilder name = new StringBuilder(64);

                GL.GetActiveUniform(ProgramID, i, 512, out length, out info.Size, out info.Type, name);

                info.Name = name.ToString();
                Uniforms.Add(name.ToString(), info);
                info.Address = GL.GetUniformLocation(ProgramID, info.Name);
            }
        }