Esempio n. 1
0
 public unsafe void SetMatrix(int loc, ref Matrix4x4 mat)
 {
     GLBind.UseProgram(programID);
     fixed(Matrix4x4 *ptr = &mat)
     {
         GL.UniformMatrix4fv(loc, 1, false, (IntPtr)ptr);
     }
 }
Esempio n. 2
0
 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);
     }
 }
Esempio n. 3
0
 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;
     }
 }
Esempio n. 4
0
        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;
            }
        }
Esempio n. 5
0
        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;
            }
        }
Esempio n. 6
0
        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;
            }
        }
Esempio n. 7
0
        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;
            }
        }
Esempio n. 8
0
 public void Dispatch(uint groupsX, uint groupsY, uint groupsZ)
 {
     GLBind.UseProgram(ID);
     GL.DispatchCompute(groupsX, groupsY, groupsZ);
 }
Esempio n. 9
0
 public void UniformMatrix4fv(string name, ref Matrix4x4 mat)
 {
     GLBind.UseProgram(ID);
     GL.UniformMatrix4fv(GL.GetUniformLocation(ID, name), 1, false, ref mat);
 }
Esempio n. 10
0
 public void Uniform2i(string name, Point pt)
 {
     GLBind.UseProgram(ID);
     GL.Uniform2i(GL.GetUniformLocation(ID, name), pt.X, pt.Y);
 }
Esempio n. 11
0
 public void Uniform1i(string name, int i)
 {
     GLBind.UseProgram(ID);
     GL.Uniform1i(GL.GetUniformLocation(ID, name), i);
 }
Esempio n. 12
0
 public void UseProgram()
 {
     GLBind.UseProgram(programID);
 }
Esempio n. 13
0
 public unsafe void SetVector3Array(int loc, Vector3 *values, int count)
 {
     GLBind.UseProgram(programID);
     GL.Uniform3fv(loc, count, (IntPtr)values);
 }
Esempio n. 14
0
 public void SetMatrix(int loc, ref Matrix4 mat)
 {
     GLBind.UseProgram(programID);
     SetMatrixInternal(loc, ref mat);
 }
Esempio n. 15
0
 public void SetMatrix(int loc, IntPtr mat)
 {
     GLBind.UseProgram(programID);
     GL.UniformMatrix4fv(loc, 1, false, mat);
 }