Browse Source

Fixed shader mat4f uniform arrays issue.

Mark Sibly 8 years ago
parent
commit
166ac88bb0

+ 4 - 0
modules/mojo/graphics/shader.monkey2

@@ -148,6 +148,10 @@ Class GLProgram
 					glUniformMatrix3fv( u.location,1,False,ublock.GetMat3fv( u.uniformId ) )
 					
 				Case GL_FLOAT_MAT4
+				
+					Local size:=u.size
+					
+					If size>1 size=ublock.GetMat4fArray( u.uniformId ).Length
 					
 					glUniformMatrix4fv( u.location,u.size,False,ublock.GetMat4fv( u.uniformId ) )
 					

+ 5 - 0
modules/mojo/graphics/uniformblock.monkey2

@@ -187,6 +187,11 @@ Class UniformBlock Extends Resource
 		Return _uniforms[id].arrayData
 	End
 
+	Method GetMat4fArray:Mat4f[]( id:Int )
+		DebugAssert( _uniforms[id].type=Type.Mat4fArray,"Invalidate uniform type" )
+		Return _uniforms[id].arrayData
+	End
+
 	'***** Texture *****
 	'
 	Method SetTexture( uniform:String,value:Texture )