public void Set(Shader shader) { int usesColourhandle, colourHandle, usesEmissiveHandle, emissiveHandle, usesTransparentHandle, transparentHandle; usesColourhandle = shader.GetUniformLocation("material.usesColour"); usesEmissiveHandle = shader.GetUniformLocation("material.usesEmissiveColour"); usesTransparentHandle = shader.GetUniformLocation("material.usesTransparentColour"); if (this.usesColour == true) { colourHandle = shader.GetUniformLocation("material.colour"); GL.Uniform1(usesColourhandle, 1); GL.Uniform4(colourHandle, ref colour); } else { GL.Uniform1(usesColourhandle, 0); } if (this.usesEmissiveColour == true) { emissiveHandle = shader.GetUniformLocation("material.emissiveColour"); GL.Uniform1(usesEmissiveHandle, 1); GL.Uniform3(emissiveHandle, ref emissiveColour); } else { GL.Uniform1(usesEmissiveHandle, 0); } if (this.usesTransparentTextures == true) { transparentHandle = shader.GetUniformLocation("material.transparentColour"); GL.Uniform1(usesTransparentHandle, 1); GL.Uniform3(transparentHandle, ref transparentColour); } else { GL.Uniform1(usesTransparentHandle, 0); } // set up texture if needed if (textureIndex == -1) { return; } Texture texture = TextureManager.Instance.GetTexture(textureIndex); texture.ActivateTexture(TextureUnit.Texture0, shader, "material.texture", 0); }