Axiom.RenderSystems.OpenGL.GLSL.GLSLLinkProgramManager.CompleteDefInfo C# (CSharp) Method

CompleteDefInfo() private method

private CompleteDefInfo ( int gltype, GpuProgramParameters defToUpdate ) : void
gltype int
defToUpdate Axiom.Graphics.GpuProgramParameters
return void
        private void CompleteDefInfo(int gltype, GpuProgramParameters.GpuConstantDefinition defToUpdate)
        {
            // decode uniform size and type
                // Note GLSL never packs rows into float4's(from an API perspective anyway)
                // therefore all values are tight in the buffer
                switch (gltype)
                {
                case Gl.GL_FLOAT:
                        defToUpdate.ConstantType = GpuProgramParameters.GpuConstantType.Float1;
                        break;
                case Gl.GL_FLOAT_VEC2:
                        defToUpdate.ConstantType = GpuProgramParameters.GpuConstantType.Float2;
                        break;

                case Gl.GL_FLOAT_VEC3:
                        defToUpdate.ConstantType = GpuProgramParameters.GpuConstantType.Float3;
                        break;

                case Gl.GL_FLOAT_VEC4:
                        defToUpdate.ConstantType = GpuProgramParameters.GpuConstantType.Float4;
                        break;
                case Gl.GL_SAMPLER_1D:
                        // need to record samplers for GLSL
                        defToUpdate.ConstantType = GpuProgramParameters.GpuConstantType.Sampler1D;
                        break;
                case Gl.GL_SAMPLER_2D:
                case Gl.GL_SAMPLER_2D_RECT_ARB:
                        defToUpdate.ConstantType = GpuProgramParameters.GpuConstantType.Sampler2D;
                        break;
                case Gl.GL_SAMPLER_3D:
                        defToUpdate.ConstantType = GpuProgramParameters.GpuConstantType.Sampler3D;
                        break;
                case Gl.GL_SAMPLER_CUBE:
                        defToUpdate.ConstantType = GpuProgramParameters.GpuConstantType.SamplerCube;
                        break;
                case Gl.GL_SAMPLER_1D_SHADOW:
                        defToUpdate.ConstantType = GpuProgramParameters.GpuConstantType.Sampler1DShadow;
                        break;
                case Gl.GL_SAMPLER_2D_SHADOW:
                case Gl.GL_SAMPLER_2D_RECT_SHADOW_ARB:
                        defToUpdate.ConstantType = GpuProgramParameters.GpuConstantType.Sampler2DShadow;
                        break;
                case Gl.GL_INT:
                        defToUpdate.ConstantType = GpuProgramParameters.GpuConstantType.Int1;
                        break;
                case Gl.GL_INT_VEC2:
                        defToUpdate.ConstantType = GpuProgramParameters.GpuConstantType.Int2;
                        break;
                case Gl.GL_INT_VEC3:
                        defToUpdate.ConstantType = GpuProgramParameters.GpuConstantType.Int3;
                        break;
                case Gl.GL_INT_VEC4:
                        defToUpdate.ConstantType = GpuProgramParameters.GpuConstantType.Int4;
                        break;
                case Gl.GL_FLOAT_MAT2:
                        defToUpdate.ConstantType = GpuProgramParameters.GpuConstantType.Matrix_2X2;
                        break;
                case Gl.GL_FLOAT_MAT3:
                        defToUpdate.ConstantType = GpuProgramParameters.GpuConstantType.Matrix_3X3;
                        break;
                case Gl.GL_FLOAT_MAT4:
                        defToUpdate.ConstantType = GpuProgramParameters.GpuConstantType.Matrix_4X4;
                        break;
                case Gl.GL_FLOAT_MAT2x3:
                        defToUpdate.ConstantType = GpuProgramParameters.GpuConstantType.Matrix_2X3;
                        break;
                case Gl.GL_FLOAT_MAT3x2:
                        defToUpdate.ConstantType = GpuProgramParameters.GpuConstantType.Matrix_3X2;
                        break;
                case Gl.GL_FLOAT_MAT2x4:
                        defToUpdate.ConstantType = GpuProgramParameters.GpuConstantType.Matrix_2X4;
                        break;
                case Gl.GL_FLOAT_MAT4x2:
                        defToUpdate.ConstantType = GpuProgramParameters.GpuConstantType.Matrix_4X2;
                        break;
                case Gl.GL_FLOAT_MAT3x4:
                        defToUpdate.ConstantType = GpuProgramParameters.GpuConstantType.Matrix_3X4;
                        break;
                case Gl.GL_FLOAT_MAT4x3:
                        defToUpdate.ConstantType = GpuProgramParameters.GpuConstantType.Matrix_4X3;
                        break;
                default:
                        defToUpdate.ConstantType = GpuProgramParameters.GpuConstantType.Unknown;
                        break;

                }

                // GL doesn't pad
            defToUpdate.ElementSize = GpuProgramParameters.GpuConstantDefinition.GetElementSize( defToUpdate.ConstantType, false );
        }