示例#1
0
// key events are a way to get input from GLFW.
// here we check for the escape key being pressed. if it is pressed,
// request that the window be closed
func keyCallback(w *glfw.Window, key glfw.Key, scancode int, action glfw.Action, mods glfw.ModifierKey) {
	if key == glfw.KeyEscape && action == glfw.Press {
		w.SetShouldClose(true)
	} else if key == glfw.KeyZ && action == glfw.Press {
		gZoom = 1
		gOffX = 0
		gOffY = 0
		gBlend = 1
	} else if key == glfw.KeyUp && (action == glfw.Press || action == glfw.Repeat) {
		gBlend += 0.05
		if gBlend > 1 {
			gBlend = 1
		}
	} else if key == glfw.KeyDown && (action == glfw.Press || action == glfw.Repeat) {
		gBlend -= 0.05
		if gBlend < 0 {
			gBlend = 0
		}
	} else if key == glfw.KeyLeftBracket && (action == glfw.Press || action == glfw.Repeat) {
		gZoom /= 2
	} else if key == glfw.KeyRightBracket && (action == glfw.Press || action == glfw.Repeat) {
		gZoom *= 2
	} else if key == glfw.Key1 && (action == glfw.Press || action == glfw.Repeat) {
		gBlend = 0
	} else if key == glfw.Key2 && (action == glfw.Press || action == glfw.Repeat) {
		gBlend = 1
	} else if key == glfw.Key3 && (action == glfw.Press || action == glfw.Repeat) {
		gBlend = 0.5
	} else if key == glfw.KeyH && (action == glfw.Press || action == glfw.Repeat) {
		gHelp = !gHelp
	}
}