diff options
Diffstat (limited to 'main.go')
-rw-r--r-- | main.go | 50 |
1 files changed, 50 insertions, 0 deletions
@@ -0,0 +1,50 @@ +// 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() +} |