- backporting x11 input repeat fix from 4ff66a7818e3eaa5362c828a18220b12f1cd9bc8 to 3.2
- GLFW C library source is included and built automatically as part of the Go package. But you need to make sure you have dependencies of GLFW:
- On macOS, you need Xcode or Command Line Tools for Xcode (
xcode-select --install
) for required headers and libraries.
- On Ubuntu/Debian-like Linux distributions, you need
libgl1-mesa-dev
and xorg-dev
packages.
- On CentOS/Fedora-like Linux distributions, you need
libX11-devel libXcursor-devel libXrandr-devel libXinerama-devel mesa-libGL-devel libXi-devel
packages.
- See here for full details.
- Go 1.4+ is required on Windows (otherwise you must use MinGW v4.8.1 exactly, see Go issue 8811).
go get -u github.com/go-gl/glfw/v3.2/glfw
package main
import (
"runtime"
"github.com/go-gl/glfw/v3.2/glfw"
)
func init() {
// This is needed to arrange that main() runs on main thread.
// See documentation for functions that are only allowed to be called from the main thread.
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()
}
}
- Easy
go get
installation. GLFW source code is now included in-repo and compiled in so you don't have to build GLFW on your own and distribute shared libraries. The revision of GLFW C library used is listed in GLFW_C_REVISION.txt file.
- The error 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) if the error is recoverable. If not a panic will occur.
- Added function
Window.SetSizeLimits
.
- Added function
Window.SetAspectRatio
.
- Added function
Window.SetMonitor
.
- Added function
Window.Maximize
.
- Added function
Window.SetIcon
.
- Added function
Window.Focus
.
- Added function
GetKeyName
.
- Added function
VulkanSupported
.
- Added function
GetTimerValue
.
- Added function
GetTimerFrequency
.
- Added function
WaitEventsTimeout
.
- Added function
SetJoystickCallback
.
- Added window hint
Maximized
.
- Added hint
NoAPI
.
- Added hint
NativeContextAPI
.
- Added hint
EGLContextAPI
.
- Added type
Cursor
.
- Added function
Window.SetDropCallback
.
- Added function
Window.SetCharModsCallback
.
- Added function
PostEmptyEvent
.
- Added function
CreateCursor
.
- Added function
CreateStandardCursor
.
- Added function
Cursor.Destroy
.
- Added function
Window.SetCursor
.
- Added function
Window.GetFrameSize
.
- Added window hint
Floating
.
- Added window hint
AutoIconify
.
- Added window hint
ContextReleaseBehavior
.
- Added window hint
DoubleBuffer
.
- Added hint value
AnyReleaseBehavior
.
- Added hint value
ReleaseBehaviorFlush
.
- Added hint value
ReleaseBehaviorNone
.
- Added hint value
DontCare
.
Window.Iconify
Returns an error.
Window.Restore
Returns an error.
Init
Returns an error instead of bool
.
GetJoystickAxes
No longer returns an error.
GetJoystickButtons
No longer returns an error.
GetJoystickName
No longer returns an error.
GetMonitors
No longer returns an error.
GetPrimaryMonitor
No longer returns an error.
Monitor.GetGammaRamp
No longer returns an error.
Monitor.GetVideoMode
No longer returns an error.
Monitor.GetVideoModes
No longer returns an error.
GetCurrentContext
No longer returns an error.
Window.SetCharCallback
Accepts rune
instead of uint
.
- Added type
Error
.
- Removed
SetErrorCallback
.
- Removed error code
NotInitialized
.
- Removed error code
NoCurrentContext
.
- Removed error code
InvalidEnum
.
- Removed error code
InvalidValue
.
- Removed error code
OutOfMemory
.
- Removed error code
PlatformError
.
- Removed
KeyBracket
.
- Renamed
Window.SetCharacterCallback
to Window.SetCharCallback
.
- Renamed
Window.GetCursorPosition
to GetCursorPos
.
- Renamed
Window.SetCursorPosition
to SetCursorPos
.
- Renamed
CursorPositionCallback
to CursorPosCallback
.
- Renamed
Window.SetCursorPositionCallback
to SetCursorPosCallback
.
- Renamed
VideoMode
to VidMode
.
- Renamed
Monitor.GetPosition
to Monitor.GetPos
.
- Renamed
Window.GetPosition
to Window.GetPos
.
- Renamed
Window.SetPosition
to Window.SetPos
.
- Renamed
Window.GetAttribute
to Window.GetAttrib
.
- Renamed
Window.SetPositionCallback
to Window.SetPosCallback
.
- Renamed
PositionCallback
to PosCallback
.
- Ranamed
Cursor
to CursorMode
.
- Renamed
StickyKeys
to StickyKeysMode
.
- Renamed
StickyMouseButtons
to StickyMouseButtonsMode
.
- Renamed
ApiUnavailable
to APIUnavailable
.
- Renamed
ClientApi
to ClientAPI
.
- Renamed
OpenglForwardCompatible
to OpenGLForwardCompatible
.
- Renamed
OpenglDebugContext
to OpenGLDebugContext
.
- Renamed
OpenglProfile
to OpenGLProfile
.
- Renamed
SrgbCapable
to SRGBCapable
.
- Renamed
OpenglApi
to OpenGLAPI
.
- Renamed
OpenglEsApi
to OpenGLESAPI
.
- Renamed
OpenglAnyProfile
to OpenGLAnyProfile
.
- Renamed
OpenglCoreProfile
to OpenGLCoreProfile
.
- Renamed
OpenglCompatProfile
to OpenGLCompatProfile
.
- Renamed
KeyKp...
to KeyKP...
.