added some basic input handling to sdl and glfw examples

This commit is contained in:
Thomas Friedel 2018-05-09 19:27:19 +02:00
parent 6ed91cb412
commit 22eceabf9f
2 changed files with 14 additions and 0 deletions

View file

@ -47,6 +47,10 @@ func main() {
log.Fatalf("Error loading canvas GL assets: %v", err) 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 // initialize canvas with zero size, since size is set in main loop
cv := canvas.New(0, 0, 0, 0) 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) { func run(cv *canvas.Canvas, w, h float64) {
cv.SetFillStyle("#000") cv.SetFillStyle("#000")
cv.FillRect(0, 0, w, h) cv.FillRect(0, 0, w, h)
cv.SetFillStyle("#00F") cv.SetFillStyle("#00F")
cv.FillRect(w*0.25, h*0.25, w*0.5, h*0.5) 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)
} }

View file

@ -90,6 +90,8 @@ func main() {
if e.Type == sdl.KEYDOWN && e.Keysym.Scancode == sdl.SCANCODE_ESCAPE { if e.Type == sdl.KEYDOWN && e.Keysym.Scancode == sdl.SCANCODE_ESCAPE {
running = false running = false
} }
case *sdl.MouseMotionEvent:
mx, my = float64(e.X), float64(e.Y)
case *sdl.WindowEvent: case *sdl.WindowEvent:
if e.Type == sdl.WINDOWEVENT_CLOSE { if e.Type == sdl.WINDOWEVENT_CLOSE {
running = false running = false
@ -109,9 +111,13 @@ func main() {
} }
} }
var mx, my float64
func run(cv *canvas.Canvas, w, h float64) { func run(cv *canvas.Canvas, w, h float64) {
cv.SetFillStyle("#000") cv.SetFillStyle("#000")
cv.FillRect(0, 0, w, h) cv.FillRect(0, 0, w, h)
cv.SetFillStyle("#0F0") cv.SetFillStyle("#0F0")
cv.FillRect(w*0.25, h*0.25, w*0.5, h*0.5) 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)
} }