public void Bind(GpuProgramParameters gpuParams) { if (gpuParams != null) { Axiom.Graphics.GpuProgramParameters.GpuConstantDefinition def = gpuParams.FindNamedConstantDefinition(_name); if (def != null) { this._params = gpuParams; this.physicalIndex = def.PhysicalIndex; } } }
protected void CompleteDefInfo(GLenum glType, Axiom.Graphics.GpuProgramParameters.GpuConstantDefinition defToUpdate) { //Decode unifrom size and type //Note GLSL ES never packs rows into float4's (from an API perspective anyway) //therefore all values are tight in the buffer switch (glType) { case GLenum.Float: defToUpdate.ConstantType = GpuProgramParameters.GpuConstantType.Float1; break; case GLenum.FloatVec2: defToUpdate.ConstantType = GpuProgramParameters.GpuConstantType.Float2; break; case GLenum.FloatVec3: defToUpdate.ConstantType = GpuProgramParameters.GpuConstantType.Float3; break; case GLenum.FloatVec4: defToUpdate.ConstantType = GpuProgramParameters.GpuConstantType.Float4; break; case GLenum.Sampler2D: defToUpdate.ConstantType = GpuProgramParameters.GpuConstantType.Sampler2D; break; case GLenum.SamplerCube: defToUpdate.ConstantType = GpuProgramParameters.GpuConstantType.SamplerCube; break; case GLenum.Int: defToUpdate.ConstantType = GpuProgramParameters.GpuConstantType.Int1; break; case GLenum.IntVec2: defToUpdate.ConstantType = GpuProgramParameters.GpuConstantType.Int2; break; case GLenum.IntVec3: defToUpdate.ConstantType = GpuProgramParameters.GpuConstantType.Int3; break; case GLenum.IntVec4: defToUpdate.ConstantType = GpuProgramParameters.GpuConstantType.Int4; break; case GLenum.FloatMat2: defToUpdate.ConstantType = GpuProgramParameters.GpuConstantType.Matrix_2X2; break; case GLenum.FloatMat3: defToUpdate.ConstantType = GpuProgramParameters.GpuConstantType.Matrix_3X3; break; case GLenum.FloatMat4: defToUpdate.ConstantType = GpuProgramParameters.GpuConstantType.Unknown; break; default: defToUpdate.ConstantType = GpuProgramParameters.GpuConstantType.Unknown; break; } //GL doesn't pad defToUpdate.ElementSize = Axiom.Graphics.GpuProgramParameters.GpuConstantDefinition.GetElementSize(defToUpdate.ConstantType, false); }