From c8f8de20f5ff03d94a969e23cfe77d52e10b3ab4 Mon Sep 17 00:00:00 2001 From: xengineering Date: Fri, 21 May 2021 13:45:20 +0200 Subject: Refactor GLFW-related Code --- app.go | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 app.go (limited to 'app.go') diff --git a/app.go b/app.go new file mode 100644 index 0000000..603f47d --- /dev/null +++ b/app.go @@ -0,0 +1,55 @@ +// vim: shiftwidth=4 tabstop=4 noexpandtab + +package main + +import ( + "log" + + "github.com/go-gl/glfw/v3.3/glfw" +) + +const ( + WINDOW_WIDTH = 500 + WINDOW_HEIGHT = 500 + WINDOW_TITLE = "stlscope" +) + +type App struct { + window *glfw.Window +} + +func newApp() App { + + var app App = App{} + var err error + + log.Println("GLFW init") + if err := glfw.Init(); err != nil { + panic(err) + } + + glfw.WindowHint(glfw.Resizable, glfw.False) + glfw.WindowHint(glfw.ContextVersionMajor, 4) + glfw.WindowHint(glfw.ContextVersionMinor, 6) + glfw.WindowHint(glfw.OpenGLProfile, glfw.OpenGLCoreProfile) + glfw.WindowHint(glfw.OpenGLForwardCompatible, glfw.True) + glfw.WindowHint(glfw.Samples, 16) // anti-aliasing + + log.Println("Creating Window") + app.window, err = glfw.CreateWindow(WINDOW_WIDTH, WINDOW_HEIGHT, WINDOW_TITLE, nil, nil) + if err != nil { + panic(err) + } + app.window.MakeContextCurrent() + + return app +} + +func (application App) handle() { + glfw.PollEvents() + application.window.SwapBuffers() +} + +func (application App) terminate() { + glfw.Terminate() +} -- cgit v1.2.3-70-g09d2