func NewControllerManager(window *glfw.Window) *ControllerManager { var controllerList []Controller c := &ControllerManager{controllerList} window.SetKeyCallback(c.KeyCallback) window.SetMouseButtonCallback(c.MouseButtonCallback) window.SetCursorPosCallback(c.CursorPosCallback) window.SetScrollCallback(c.ScrollCallback) return c }
func NewEventHandler(w *glfw.Window) (e *EventHandler) { e = &EventHandler{ Events: make(chan Event, 100), window: w, } // See http://www.glfw.org/docs/latest/input.html#input_keyboard w.SetInputMode(glfw.StickyKeysMode, 1) w.SetCursorPosCallback(e.onMouseMove) w.SetKeyCallback(e.onKey) w.SetMouseButtonCallback(e.onMouseButton) return }
// NewOpenGlWindow tries to initialize the OpenGL environment and returns a // new window instance. func NewOpenGlWindow() (window *OpenGlWindow, err error) { if err = glfw.Init(); err == nil { glfw.WindowHint(glfw.ClientAPI, glfw.OpenGLAPI) glfw.WindowHint(glfw.ContextVersionMajor, 3) glfw.WindowHint(glfw.ContextVersionMinor, 2) glfw.WindowHint(glfw.OpenGLProfile, glfw.OpenGLCoreProfile) glfw.WindowHint(glfw.OpenGLForwardCompatible, glfw.True) var glfwWindow *glfw.Window glfwWindow, err = glfw.CreateWindow(320, 200, "shocked", nil, nil) if err == nil { glfwWindow.MakeContextCurrent() window = &OpenGlWindow{ AbstractOpenGlWindow: env.InitAbstractOpenGlWindow(), glfwWindow: glfwWindow, glWrapper: NewOpenGl()} glfwWindow.SetCursorPosCallback(window.onCursorPos) glfwWindow.SetMouseButtonCallback(window.onMouseButton) glfwWindow.SetScrollCallback(window.onMouseScroll) } } return }