From 22eceabf9fd9bb88c2c891a6c9a28afb3df1d388 Mon Sep 17 00:00:00 2001 From: Thomas Friedel Date: Wed, 9 May 2018 19:27:19 +0200 Subject: [PATCH] added some basic input handling to sdl and glfw examples --- examples/glfw/glfw.go | 8 ++++++++ examples/sdl/sdl.go | 6 ++++++ 2 files changed, 14 insertions(+) diff --git a/examples/glfw/glfw.go b/examples/glfw/glfw.go index 77988b8..0c40de0 100644 --- a/examples/glfw/glfw.go +++ b/examples/glfw/glfw.go @@ -47,6 +47,10 @@ func main() { log.Fatalf("Error loading canvas GL assets: %v", err) } + window.SetCursorPosCallback(func(w *glfw.Window, xpos float64, ypos float64) { + mx, my = xpos, ypos + }) + // initialize canvas with zero size, since size is set in main loop cv := canvas.New(0, 0, 0, 0) @@ -66,9 +70,13 @@ func main() { } } +var mx, my float64 + func run(cv *canvas.Canvas, w, h float64) { cv.SetFillStyle("#000") cv.FillRect(0, 0, w, h) cv.SetFillStyle("#00F") cv.FillRect(w*0.25, h*0.25, w*0.5, h*0.5) + cv.SetStrokeStyle("#0F0") + cv.StrokeRect(mx-32, my-32, 64, 64) } diff --git a/examples/sdl/sdl.go b/examples/sdl/sdl.go index 735162f..c9caf66 100644 --- a/examples/sdl/sdl.go +++ b/examples/sdl/sdl.go @@ -90,6 +90,8 @@ func main() { if e.Type == sdl.KEYDOWN && e.Keysym.Scancode == sdl.SCANCODE_ESCAPE { running = false } + case *sdl.MouseMotionEvent: + mx, my = float64(e.X), float64(e.Y) case *sdl.WindowEvent: if e.Type == sdl.WINDOWEVENT_CLOSE { running = false @@ -109,9 +111,13 @@ func main() { } } +var mx, my float64 + func run(cv *canvas.Canvas, w, h float64) { cv.SetFillStyle("#000") cv.FillRect(0, 0, w, h) cv.SetFillStyle("#0F0") cv.FillRect(w*0.25, h*0.25, w*0.5, h*0.5) + cv.SetStrokeStyle("#00F") + cv.StrokeRect(mx-32, my-32, 64, 64) }