Browse Source

glUniformMatrix4fv added

Ilya Kuzmichev 7 years ago
parent
commit
77a5c24c89
3 changed files with 10 additions and 0 deletions
  1. 1 0
      libs/sdl/GLImports.h
  2. 6 0
      libs/sdl/gl.c
  3. 3 0
      libs/sdl/sdl/GL.hx

+ 1 - 0
libs/sdl/GLImports.h

@@ -47,6 +47,7 @@ GL_IMPORT(glMemoryBarrier, MEMORYBARRIER);
 GL_IMPORT(glBindImageTexture, BINDIMAGETEXTURE);
 GL_IMPORT(glUniform1i, UNIFORM1I);
 GL_IMPORT(glUniform4fv, UNIFORM4FV);
+GL_IMPORT(glUniformMatrix4fv, UNIFORMMATRIX4FV);
 GL_IMPORT(glGetShaderiv, GETSHADERIV);
 GL_IMPORT(glGetProgramiv, GETPROGRAMIV);
 GL_IMPORT(glVertexAttribPointer, VERTEXATTRIBPOINTER);

+ 6 - 0
libs/sdl/gl.c

@@ -602,6 +602,11 @@ HL_PRIM void HL_NAME(gl_uniform4fv)( vdynamic *u, vbyte *buffer, int bufPos, int
 	glUniform4fv(u->v.i, count, (float*)buffer + bufPos);
 }
 
+HL_PRIM void HL_NAME(gl_uniform_matrix4fv)( vdynamic *u, bool transpose, vbyte *buffer, int bufPos, int count ) {
+	GLOG("%d,%d",u->v.i,count);
+	glUniformMatrix4fv(u->v.i, count, transpose ? GL_TRUE : GL_FALSE, (float*)buffer + bufPos);
+}
+
 // compute
 HL_PRIM void HL_NAME(gl_dispatch_compute)( int num_groups_x, int num_groups_y, int num_groups_z ) {
 	GLOG("%d,%d,%d",num_groups_x,num_groups_y,num_groups_z);
@@ -782,6 +787,7 @@ DEFINE_PRIM(_VOID,gl_vertex_attrib_ipointer,_I32 _I32 _I32 _I32 _I32);
 DEFINE_PRIM(_VOID,gl_delete_buffer,_NULL(_I32));
 DEFINE_PRIM(_VOID,gl_uniform1i,_NULL(_I32) _I32);
 DEFINE_PRIM(_VOID,gl_uniform4fv,_NULL(_I32) _BYTES _I32 _I32);
+DEFINE_PRIM(_VOID,gl_uniform_matrix4fv,_NULL(_I32) _BOOL _BYTES _I32 _I32);
 DEFINE_PRIM(_VOID,gl_bind_image_texture,_I32 _I32 _I32 _BOOL _I32 _I32 _I32);
 DEFINE_PRIM(_VOID,gl_dispatch_compute,_I32 _I32 _I32);
 DEFINE_PRIM(_VOID,gl_memory_barrier,_I32);

+ 3 - 0
libs/sdl/sdl/GL.hx

@@ -322,6 +322,9 @@ class GL {
 	public static function uniform4fv( u : Uniform, buffer : hl.Bytes, bufPos : Int, count : Int ) {
 	}
 
+	public static function uniformMatrix4fv( u : Uniform, transpose : Bool, buffer : hl.Bytes, bufPos : Int, count : Int ) {
+	}
+
 	// compute
 
 	public static function dispatchCompute( num_groups_x : Int, num_groups_y : Int, num_groups_z : Int ) {