public unsafe void SetMatrix(int loc, ref Matrix4x4 mat) { GLBind.UseProgram(programID); fixed(Matrix4x4 *ptr = &mat) { GL.UniformMatrix4fv(loc, 1, false, (IntPtr)ptr); } }
public unsafe void UniformMatrix4fv(string name, ref Matrix4x4 mat) { GLBind.UseProgram(ID); fixed(Matrix4x4 *ptr = &mat) { GL.UniformMatrix4fv(GL.GetUniformLocation(ID, name), 1, false, (IntPtr)ptr); } }
public void SetInteger(int loc, int value, int index = 0) { GLBind.UseProgram(programID); if (NeedUpdate(loc + index, value)) { GL.Uniform1i(loc + index, value); cachedObjects[loc + index] = value; } }
public void SetVector2(int loc, Vector2 vector, int index = 0) { GLBind.UseProgram(programID); var hash = vector.GetHashCode(); if (NeedUpdate(loc + index, hash)) { GL.Uniform2f(loc + index, vector.X, vector.Y); cachedObjects[loc + index] = hash; } }
public void SetVector4i(int loc, Vector4i value, int index = 0) { GLBind.UseProgram(programID); var hash = value.GetHashCode(); if (NeedUpdate(loc + index, hash)) { GL.Uniform4i(loc + index, value.X, value.Y, value.Z, value.W); cachedObjects[loc + index] = hash; } }
public void SetColor4(int loc, Color4 value, int index = 0) { GLBind.UseProgram(programID); var hash = value.GetHashCode(); if (NeedUpdate(loc + index, hash)) { GL.Uniform4f(loc + index, value.R, value.G, value.B, value.A); cachedObjects[loc + index] = hash; } }
public void SetFloat(int loc, float value, int index = 0) { GLBind.UseProgram(programID); var ibits = (new Float2Int() { f = value }).i; if (NeedUpdate(loc + index, ibits)) { GL.Uniform1f(loc + index, value); cachedObjects[loc + index] = ibits; } }
public void Dispatch(uint groupsX, uint groupsY, uint groupsZ) { GLBind.UseProgram(ID); GL.DispatchCompute(groupsX, groupsY, groupsZ); }
public void UniformMatrix4fv(string name, ref Matrix4x4 mat) { GLBind.UseProgram(ID); GL.UniformMatrix4fv(GL.GetUniformLocation(ID, name), 1, false, ref mat); }
public void Uniform2i(string name, Point pt) { GLBind.UseProgram(ID); GL.Uniform2i(GL.GetUniformLocation(ID, name), pt.X, pt.Y); }
public void Uniform1i(string name, int i) { GLBind.UseProgram(ID); GL.Uniform1i(GL.GetUniformLocation(ID, name), i); }
public void UseProgram() { GLBind.UseProgram(programID); }
public unsafe void SetVector3Array(int loc, Vector3 *values, int count) { GLBind.UseProgram(programID); GL.Uniform3fv(loc, count, (IntPtr)values); }
public void SetMatrix(int loc, ref Matrix4 mat) { GLBind.UseProgram(programID); SetMatrixInternal(loc, ref mat); }
public void SetMatrix(int loc, IntPtr mat) { GLBind.UseProgram(programID); GL.UniformMatrix4fv(loc, 1, false, mat); }