private Uniform Add(string typeString, string name, OpenTK.Graphics.OpenGL.ActiveUniformType type, ISampler sampler) { var uniform = new Uniform(name, -1, 1, type); uniform.Sampler = sampler; sb.Append("uniform ").Append(typeString).Append(" ").Append(name).Append(";\n"); uniform.TextureUnitIndex = samplers.Count; samplers.Add(uniform); samplerDictionary[name] = uniform; return(uniform); }
public string TypeStr(OpenTK.Graphics.OpenGL.ActiveUniformType type) { switch (type) { case OpenTK.Graphics.OpenGL.ActiveUniformType.Int: return("int "); case OpenTK.Graphics.OpenGL.ActiveUniformType.UnsignedInt: return("uint "); case OpenTK.Graphics.OpenGL.ActiveUniformType.Float: return("float"); case OpenTK.Graphics.OpenGL.ActiveUniformType.FloatVec2: return("vec2 "); case OpenTK.Graphics.OpenGL.ActiveUniformType.FloatVec3: return("vec3 "); case OpenTK.Graphics.OpenGL.ActiveUniformType.FloatVec4: return("vec4 "); case OpenTK.Graphics.OpenGL.ActiveUniformType.FloatMat4: return("mat4 "); default: throw new ArgumentOutOfRangeException(); } }
public string TypeStr(OpenTK.Graphics.OpenGL.ActiveUniformType type) { switch (type) { case OpenTK.Graphics.OpenGL.ActiveUniformType.Int: return("int "); case OpenTK.Graphics.OpenGL.ActiveUniformType.UnsignedInt: return("uint "); case OpenTK.Graphics.OpenGL.ActiveUniformType.Float: return("float"); case OpenTK.Graphics.OpenGL.ActiveUniformType.FloatVec2: return("vec2 "); case OpenTK.Graphics.OpenGL.ActiveUniformType.FloatVec3: return("vec3 "); case OpenTK.Graphics.OpenGL.ActiveUniformType.FloatVec4: return("vec4 "); // \todo !!! XXX FIXME HACK type (mat4) not implemented in uniform blocks case OpenTK.Graphics.OpenGL.ActiveUniformType.FloatMat4: return("vec4 "); default: throw new ArgumentOutOfRangeException(); } }