mirror of https://github.com/liamg/aminal.git
|
||
---|---|---|
.. | ||
scripts | ||
v3.0/glfw | ||
v3.1/glfw | ||
v3.2/glfw | ||
v3.3/glfw | ||
.travis.yml | ||
AUTHORS | ||
LICENSE | ||
README.md |
README.md
GLFW 3.3 for Go

Installation
- 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
andxorg-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.
- On macOS, you need Xcode or Command Line Tools for Xcode (
- 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.3/glfw
Usage
package main
import (
"runtime"
"github.com/go-gl/glfw/v3.3/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() {
if !glfw.Init() {
panic(glfw.GetError())
}
defer glfw.Terminate()
window := glfw.CreateWindow(640, 480, "Testing", nil, nil)
if window == nil {
panic(glfw.GetError())
}
window.MakeContextCurrent()
for !window.ShouldClose() {
// Do OpenGL stuff.
window.SwapBuffers()
glfw.PollEvents()
}
}
Changelog
- Internal error callback is now removed since GLFW now has a method called
GetError
. You can either set a custom error callback viaSetErrorCallback
or you can check for the last error viaGetError
. Due to this, some backward incompatible API changes needed to be made. See below for details. - Joystick functions now uses receivers instead of passing the joystick ID as argument.
- Vulkan methods are intentionally not implemented.
Window.Handle
can be used to create a Vulkan surface via the this package.
GLFW 3.3 Specific Changes
- Renamed
Window.GLFWWindow
toWindow.Handle
- Added function
SetErrorCallback
. - Added function
GetError
. - Added function
Window.RequestAttention
. - Added function
Window.SetAttrib
. - Added function
Window.GetContentScale
. - Added function
Window.GetOpacity
. - Added function
Window.SetOpacity
. - Added function
Window.SetMaximizeCallback
. - Added function
Window.SetContentScaleCallback
. - Added function
Monitor.GetContentScale
. - Added function
Monitor.SetUserPointer
. - Added function
Monitor.GetUserPointer
. - Added function
GetKeyScancode
. - Added function
InitHint
. - Added function
Joystick.GetHats
. - Added function
Joystick.IsGamepad
. - Added function
Joystick.GetGUID
. - Added function
Joystick.GetGamepadName
. - Added function
Joystick.GetGamepadState
. - Added function
Joystick.SetUserPointer
. - Added function
Joystick.GetUserPointer
. - Added function
UpdateGamepadMappings
. - Added function
SetX11SelectionString
. - Added function
GetX11SelectionString
. - Added function
WindowHintString
. - Added gamepad button IDs.
- Added gamepad axis IDs.
- Added joystick hat state IDs.
- Added hint
Hovered
. - Added hint
CenterCursor
. - Added hint
JoystickHatButtons
. - Added hint
CocoaChdirResources
. - Added hint
CocoaMenubar
. - Added hint
TransparentFramebuffer
. - Added hint value
OSMesaContextAPI
. MonitorEvent
renamed toPeripheralEvent
for reuse with joystick events.Init
Returnsbool
instead of error.Joystick.GetButtons
Returns[]Action
instead of[]byte
.SetMonitorCallback
ReturnsMonitorCallback
.Focus
No longer returns an error.Iconify
No longer returns an error.Maximize
No longer returns an error.Restore
No longer returns an error.GetClipboardString
No longer returns an error.
GLFW 3.2 Specfic Changes
- 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
.
GLFW 3.1 Specfic Changes
- 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
.
API changes
Window.Iconify
Returns an error.Window.Restore
Returns an error.Init
Returns an error instead ofbool
.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
Acceptsrune
instead ofuint
.- 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
toWindow.SetCharCallback
. - Renamed
Window.GetCursorPosition
toGetCursorPos
. - Renamed
Window.SetCursorPosition
toSetCursorPos
. - Renamed
CursorPositionCallback
toCursorPosCallback
. - Renamed
Window.SetCursorPositionCallback
toSetCursorPosCallback
. - Renamed
VideoMode
toVidMode
. - Renamed
Monitor.GetPosition
toMonitor.GetPos
. - Renamed
Window.GetPosition
toWindow.GetPos
. - Renamed
Window.SetPosition
toWindow.SetPos
. - Renamed
Window.GetAttribute
toWindow.GetAttrib
. - Renamed
Window.SetPositionCallback
toWindow.SetPosCallback
. - Renamed
PositionCallback
toPosCallback
. - Ranamed
Cursor
toCursorMode
. - Renamed
StickyKeys
toStickyKeysMode
. - Renamed
StickyMouseButtons
toStickyMouseButtonsMode
. - Renamed
ApiUnavailable
toAPIUnavailable
. - Renamed
ClientApi
toClientAPI
. - Renamed
OpenglForwardCompatible
toOpenGLForwardCompatible
. - Renamed
OpenglDebugContext
toOpenGLDebugContext
. - Renamed
OpenglProfile
toOpenGLProfile
. - Renamed
SrgbCapable
toSRGBCapable
. - Renamed
OpenglApi
toOpenGLAPI
. - Renamed
OpenglEsApi
toOpenGLESAPI
. - Renamed
OpenglAnyProfile
toOpenGLAnyProfile
. - Renamed
OpenglCoreProfile
toOpenGLCoreProfile
. - Renamed
OpenglCompatProfile
toOpenGLCompatProfile
. - Renamed
KeyKp...
toKeyKP...
.