// vim: shiftwidth=4 tabstop=4 noexpandtab package main import ( "runtime" "log" "flag" "github.com/go-gl/glfw/v3.3/glfw" ) var ( stlFilePath string ) func main() { // read command line arguments parseFlags() // parse STL file _, err := ReadBinaryStlFile(stlFilePath) if err != nil { log.Fatal(err) } // lock this program to one OS thread (details: https://golang.org/pkg/runtime/#LockOSThread) log.Println("Locking OS thread") runtime.LockOSThread() // init GLFW and assert termination at end of main window := initGlfw() defer glfw.Terminate() // init OpenGL program := initOpenGL() vao := makeVao(triangle) // main loop for !window.ShouldClose() { draw(vao, window, program) } } func parseFlags() { flag.StringVar(&stlFilePath, "file", "myfile.stl", "path to the binary STL file") flag.Parse() }