public void setUniform(UniformData ud) { currentUniformData++; myUniforms[currentUniformData] = ud; }
public void setUniform(UniformData uni) { Uniform uniform = null; for (int i = 0; i < myUniforms.Count; i++) { int loc = (i + myNextSearchUniform) % myUniforms.Count; if (myUniforms[loc].location == uni.location) { myNextSearchUniform = loc + 1; uniform = myUniforms[loc]; break; } } if (uniform != null) { switch (uni.type) { case Uniform.UniformType.Bool: uniform.setValue((bool)uni.data); break; case Uniform.UniformType.Int: uniform.setValue((int)uni.data); break; case Uniform.UniformType.Float: uniform.setValue((float)uni.data); break; case Uniform.UniformType.Vec2: uniform.setValue((Vector2)uni.data); break; case Uniform.UniformType.IVec2: uniform.setValue((Vector2)uni.data); break; case Uniform.UniformType.Vec3: uniform.setValue((Vector3)uni.data); break; case Uniform.UniformType.IVec3: uniform.setValue((Vector3)uni.data); break; case Uniform.UniformType.Vec4: uniform.setValue((Vector4)uni.data); break; case Uniform.UniformType.IVec4: uniform.setValue((Vector4)uni.data); break; case Uniform.UniformType.Color4: uniform.setValue((Color4)uni.data); break; case Uniform.UniformType.Mat4: uniform.setValue((Matrix4)uni.data); break; case Uniform.UniformType.Mat4Array: uniform.setValue((Matrix4[])uni.data); break; } uniform.apply(); } }