diff options
| -rw-r--r-- | app.go | 8 | ||||
| -rw-r--r-- | graphics.go | 21 | ||||
| -rw-r--r-- | main.go | 1 | 
3 files changed, 18 insertions, 12 deletions
| @@ -6,6 +6,7 @@ import (  	"log"  	"github.com/go-gl/glfw/v3.3/glfw" +	"github.com/go-gl/mathgl/mgl32"  )  const ( @@ -16,6 +17,7 @@ const (  type App struct {  	window *glfw.Window +	graphics *Graphics  }  func newApp() App { @@ -45,9 +47,13 @@ func newApp() App {  	return app  } -func (application App) handle() { +func (application *App) handle() {  	glfw.PollEvents()  	application.window.SwapBuffers() +	trafo := mgl32.HomogRotate3D(float32(glfw.GetTime()) * 3, mgl32.Vec3{0, 1, 1}) +	var scale float32 = 0.01 +	trafo = trafo.Mul4(mgl32.Scale3D(scale, scale, scale)) +	application.graphics.setTrafo(trafo)  }  func (application App) terminate() { diff --git a/graphics.go b/graphics.go index 87c21ed..66b8274 100644 --- a/graphics.go +++ b/graphics.go @@ -9,7 +9,6 @@ import (  	"github.com/go-gl/gl/v4.6-core/gl"  	"github.com/go-gl/mathgl/mgl32" -	"github.com/go-gl/glfw/v3.3/glfw"  )  var ( @@ -22,12 +21,6 @@ var (  const ( -	// rotational speed and vector -	OMEGA = 3 -	ROT_X = 0 -	ROT_Y = 1 -	ROT_Z = 1 -  	// vertex shader to draw points  	VERTEX_SHADER = `          #version 410 @@ -65,6 +58,8 @@ func newGraphics() Graphics {  	var graphics Graphics = Graphics{} +	graphics.trafo = mgl32.Ident4() +  	// init OpenGL and save/log version  	log.Println("OpenGL init")  	err := gl.Init() @@ -94,8 +89,8 @@ func newGraphics() Graphics {  	graphics.vao = makeVao(vertices)  	// create transformation matrix -	graphics.trafo = mgl32.HomogRotate3D(float32(glfw.GetTime()) * OMEGA, mgl32.Vec3{ROT_X, ROT_Y, ROT_Z}) -	graphics.trafoUniform = gl.GetUniformLocation(graphics.program, gl.Str("trafo\x00")) +	//graphics.trafo = mgl32.HomogRotate3D(float32(glfw.GetTime()) * OMEGA, mgl32.Vec3{ROT_X, ROT_Y, ROT_Z}) +	//graphics.trafoUniform = gl.GetUniformLocation(graphics.program, gl.Str("trafo\x00"))  	gl.UniformMatrix4fv(graphics.trafoUniform, 1, false, &graphics.trafo[0])  	return graphics @@ -105,11 +100,11 @@ func (graphics Graphics) draw() {  	gl.Clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT)  	gl.UseProgram(graphics.program) -	graphics.trafo = mgl32.HomogRotate3D(float32(glfw.GetTime()) * OMEGA, mgl32.Vec3{ROT_X, ROT_Y, ROT_Z}) +	//graphics.trafo = mgl32.HomogRotate3D(float32(glfw.GetTime()) * OMEGA, mgl32.Vec3{ROT_X, ROT_Y, ROT_Z})  	gl.UniformMatrix4fv(graphics.trafoUniform, 1, false, &graphics.trafo[0])  	gl.BindVertexArray(graphics.vao) -	gl.DrawArrays(gl.TRIANGLES, 0, int32(len(vertices)/3)) +	gl.DrawArrays(gl.LINE_STRIP, 0, int32(len(vertices)/3))  // POINTS, LINES, LINE_STRIP, LINE_LOOP, TRIANGLES, TRIANGLE_STRIP, TRIANGLE_FAN  }  // makeVao initializes and returns a vertex array from the points provided. @@ -157,3 +152,7 @@ func compileShader(source string, shaderType uint32) (uint32, error) {  	return shader, nil  } + +func (graphics *Graphics) setTrafo(trafo mgl32.Mat4) { +	graphics.trafo = trafo +} @@ -33,6 +33,7 @@ func main() {  	// initialize graphics  	var graphics Graphics = newGraphics() +	app.graphics = &graphics  // connect graphics to the app  	// main loop  	for !app.window.ShouldClose() { | 
