Update document
1 file changed
tree: 9e56b5b99659b6bb10187bbe6aaeae9a4896d336
  1. glfw/
  2. v3.0/
  3. AUTHORS
  4. build.go
  5. cocoainit_darwin.go
  6. cocoamonitor_darwin.go
  7. cocoawindow_darwin.go
  8. context.go
  9. error.c
  10. error.go
  11. glfw.go
  12. GLFW_C_REVISION.txt
  13. glfw_context.c
  14. glfw_egl_context.c
  15. glfw_glx_context.c
  16. glfw_init.c
  17. glfw_input.c
  18. glfw_linux_joystick.c
  19. glfw_mach_time.c
  20. glfw_monitor.c
  21. glfw_posix_time.c
  22. glfw_posix_tls.c
  23. glfw_wgl_context.c
  24. glfw_win32_init.c
  25. glfw_win32_monitor.c
  26. glfw_win32_time.c
  27. glfw_win32_tls.c
  28. glfw_win32_window.c
  29. glfw_window.c
  30. glfw_winmm_joystick.c
  31. glfw_wl_init.c
  32. glfw_wl_monitor.c
  33. glfw_wl_window.c
  34. glfw_x11_init.c
  35. glfw_x11_monitor.c
  36. glfw_x11_window.c
  37. glfw_xkb_unicode.c
  38. input.c
  39. input.go
  40. iokitjoystick_darwin.go
  41. LICENSE
  42. monitor.c
  43. monitor.go
  44. native_darwin.go
  45. native_linbsd.go
  46. native_windows.go
  47. nsglcontext_darwin.go
  48. README.md
  49. time.go
  50. util.go
  51. window.c
  52. window.go
README.md

Go Bindings for GLFW 3

  • ATTENTION: As of GLFW 3.1 we break API. See Changelog below.
  • See here for documentation.
  • You can help by submitting examples to go-gl/examples.

Remarks

  • Some functions -which are marked in the documentation- can be called only from the main thread. You need to use runtime.LockOSThread() to arrange that main() runs on main thread.
  • Installation is easy, just go get github.com/go-gl/glfw3 and be done (GLFW sources are included so you don't have to build GLFW on your own)!
  • Go 1.4 is required on Windows (otherwise you must use MinGW v4.8.1 exactly, see Go issue 8811).

Example

package main

import (
	"runtime"

	glfw "github.com/go-gl/glfw3"
)

func init() {
	runtime.LockOSThread()
}

func main() {
	err := glfw.Init()
	if err != nil {
		panic(err)
	}
	defer glfw.Terminate()

	window, err := glfw.CreateWindow(640, 480, "Testing", nil, nil)
	if err != nil {
		panic(err)
	}

	window.MakeContextCurrent()

	for !window.ShouldClose() {
		// Do OpenGL stuff
		window.SwapBuffers()
		glfw.PollEvents()
	}
}

Changelog

The revision of GLFW C library used is listed in GLFW_C_REVISION.txt file.

  • Type glfw3.GLFWError renamed to just glfw3.Error.
  • Method window.SetCharacterCallback renamed to window.SetCharCallback.
  • Method window.SetCharacterModsCallback renamed to window.SetCharModsCallback.
  • Added Floating and AutoIconify window hints.
  • Easy go get installation (GLFW source code included in-repo and compiled in so you don't have to build GLFW on your own first and you don't have to distribute shared libraries).
  • SetErrorCallback This function is removed. The callback is now set internally. Functions return an error with corresponding code and description (do a type assertion to glfw3.Error for accessing the variables).
  • Init Returns an error instead of bool.
  • GetTime Returns an error.
  • GetCurrentContext No longer returns an error.
  • GetJoystickAxes No longer returns an error.
  • GetJoystickButtons No longer returns an error.
  • GetJoystickName No longer returns an error.
  • window.GetMonitor No longer returns an error.
  • window.GetAttribute Returns an error.
  • window.SetCharCallback Accepts rune instead of uint.
  • window.SetDropCallback added.
  • window.SetCharModsCallback added.
  • PostEmptyEvent added.
  • Native window and context handlers added.
  • Constant ApiUnavailable changed to APIUnavailable.
  • Constant ClientApi changed to ClientAPI.
  • Constant OpenglForwardCompatible changed to OpenGLForwardCompatible.
  • Constant OpenglDebugContext changed to OpenGLDebugContext.
  • Constant OpenglProfile changed to OpenGLProfile.
  • Constant SrgbCapable changed to SRGBCapable.
  • Constant OpenglApi changed to OpenGLAPI.
  • Constant OpenglEsApi changed to OpenGLESAPI.
  • Constant OpenglAnyProfile changed to OpenGLAnyProfile.
  • Constant OpenglCoreProfile changed to OpenGLCoreProfile.
  • Constant OpenglCompatProfile changed to OpenGLCompatProfile.