// 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() }