Explorar el Código

refactored calculation of panel model matrix in a method

leonsal hace 8 años
padre
commit
062ce4eef0
Se han modificado 1 ficheros con 20 adiciones y 13 borrados
  1. 20 13
      gui/panel.go

+ 20 - 13
gui/panel.go

@@ -768,6 +768,25 @@ func (p *Panel) resize(width, height float32) {
 // RenderSetup is called by the Engine before drawing the object
 func (p *Panel) RenderSetup(gl *gls.GLS, rinfo *core.RenderInfo) {
 
+	// Sets model matrix
+	var mm math32.Matrix4
+	p.SetModelMatrix(gl, &mm)
+	p.modelMatrixUni.SetMatrix4(&mm)
+
+	// Transfer uniforms
+	p.borderColorUni.Transfer(gl)
+	p.paddingColorUni.Transfer(gl)
+	p.contentColorUni.Transfer(gl)
+	p.boundsUni.Transfer(gl)
+	p.borderUni.Transfer(gl)
+	p.paddingUni.Transfer(gl)
+	p.contentUni.Transfer(gl)
+	p.modelMatrixUni.Transfer(gl)
+}
+
+// SetModelMatrix calculates and sets the specified matrix with the model matrix for this panel
+func (p *Panel) SetModelMatrix(gl *gls.GLS, mm *math32.Matrix4) {
+
 	// Get the current viewport width and height
 	_, _, width, height := gl.GetViewport()
 	fwidth := float32(width)
@@ -787,20 +806,8 @@ func (p *Panel) RenderSetup(gl *gls.GLS, rinfo *core.RenderInfo) {
 	posclip.Z = p.pospix.Z
 	//log.Debug("panel posclip:%v\n", posclip)
 
-	// Sets the model matrix uniform
-	var mm math32.Matrix4
+	// Calculates the model matrix
 	var quat math32.Quaternion
 	quat.SetIdentity()
 	mm.Compose(&posclip, &quat, &scale)
-	p.modelMatrixUni.SetMatrix4(&mm)
-
-	// Transfer uniforms
-	p.borderColorUni.Transfer(gl)
-	p.paddingColorUni.Transfer(gl)
-	p.contentColorUni.Transfer(gl)
-	p.boundsUni.Transfer(gl)
-	p.borderUni.Transfer(gl)
-	p.paddingUni.Transfer(gl)
-	p.contentUni.Transfer(gl)
-	p.modelMatrixUni.Transfer(gl)
 }