Documentation ¶
Index ¶
- Constants
- Variables
- func DefaultWindowHints()
- func DetachCurrentContext()
- func ExtensionSupported(extension string) bool
- func GetJoystickAxes(joy Joystick) ([]float32, error)
- func GetJoystickButtons(joy Joystick) ([]byte, error)
- func GetJoystickName(joy Joystick) (string, error)
- func GetTime() float64
- func GetVersion() (int, int, int)
- func GetVersionString() string
- func Init() (res bool)
- func JoystickPresent(joy Joystick) bool
- func Main()
- func PollEvents()
- func SetErrorCallback(cbfun func(code ErrorCode, desc string))
- func SetMonitorCallback(cbfun func(monitor *Monitor, event MonitorEvent))
- func SetTime(time float64)
- func SwapInterval(interval int)
- func Terminate()
- func WaitEvents()
- func WindowHint(target Hint, hint int)
- type Action
- type ErrorCode
- type GammaRamp
- type Hint
- type InputMode
- type Joystick
- type Key
- type ModifierKey
- type Monitor
- func (m *Monitor) GetGammaRamp() (*GammaRamp, error)
- func (m *Monitor) GetName() (string, error)
- func (m *Monitor) GetPhysicalSize() (int, int)
- func (m *Monitor) GetPosition() (int, int)
- func (m *Monitor) GetVideoMode() (*VideoMode, error)
- func (m *Monitor) GetVideoModes() ([]*VideoMode, error)
- func (m *Monitor) SetGamma(gamma float32)
- func (m *Monitor) SetGammaRamp(ramp *GammaRamp)
- type MonitorEvent
- type MouseButton
- type VideoMode
- type Window
- func (w *Window) C() uintptr
- func (w *Window) Destroy()
- func (w *Window) GetAttribute(attrib Hint) int
- func (w *Window) GetClipboardString() (string, error)
- func (w *Window) GetCursorPosition() (float64, float64)
- func (w *Window) GetFramebufferSize() (int, int)
- func (w *Window) GetInputMode(mode InputMode) int
- func (w *Window) GetKey(key Key) Action
- func (w *Window) GetMonitor() (*Monitor, error)
- func (w *Window) GetMouseButton(button MouseButton) Action
- func (w *Window) GetPosition() (int, int)
- func (w *Window) GetSize() (int, int)
- func (w *Window) GetUserPointer() unsafe.Pointer
- func (w *Window) Hide()
- func (w *Window) Iconify()
- func (w *Window) MakeContextCurrent()
- func (w *Window) Restore()
- func (w *Window) SetCharacterCallback(cbfun func(w *Window, char rune))
- func (w *Window) SetClipboardString(str string)
- func (w *Window) SetCloseCallback(cbfun func(w *Window))
- func (w *Window) SetCursorEnterCallback(cbfun func(w *Window, entered bool))
- func (w *Window) SetCursorPosition(xpos, ypos float64)
- func (w *Window) SetCursorPositionCallback(cbfun func(w *Window, xpos float64, ypos float64))
- func (w *Window) SetFocusCallback(cbfun func(w *Window, focused bool))
- func (w *Window) SetFramebufferSizeCallback(cbfun func(w *Window, width int, height int))
- func (w *Window) SetIconifyCallback(cbfun func(w *Window, iconified bool))
- func (w *Window) SetInputMode(mode InputMode, value int)
- func (w *Window) SetKeyCallback(cbfun func(w *Window, key Key, scancode int, action Action, mods ModifierKey))
- func (w *Window) SetMouseButtonCallback(cbfun func(w *Window, button MouseButton, action Action, mod ModifierKey))
- func (w *Window) SetPosition(xpos, ypos int)
- func (w *Window) SetPositionCallback(cbfun func(w *Window, xpos int, ypos int))
- func (w *Window) SetRefreshCallback(cbfun func(w *Window))
- func (w *Window) SetScrollCallback(cbfun func(w *Window, xoff float64, yoff float64))
- func (w *Window) SetShouldClose(value bool)
- func (w *Window) SetSize(width, height int)
- func (w *Window) SetSizeCallback(cbfun func(w *Window, width int, height int))
- func (w *Window) SetTitle(title string)
- func (w *Window) SetUserPointer(pointer unsafe.Pointer)
- func (w *Window) ShouldClose() (res bool)
- func (w *Window) Show()
- func (w *Window) SwapBuffers()
Constants ¶
const ( VersionMajor = C.GLFW_VERSION_MAJOR //This is incremented when the API is changed in non-compatible ways. VersionMinor = C.GLFW_VERSION_MINOR //This is incremented when features are added to the API but it remains backward-compatible. VersionRevision = C.GLFW_VERSION_REVISION //This is incremented when a bug fix release is made that does not contain any API changes. )
const ( CursorNormal int = C.GLFW_CURSOR_NORMAL CursorHidden int = C.GLFW_CURSOR_HIDDEN CursorDisabled int = C.GLFW_CURSOR_DISABLED )
Cursor mode values
const ( OpenglApi int = C.GLFW_OPENGL_API OpenglEsApi int = C.GLFW_OPENGL_ES_API )
Values for the ClientApi hint.
const ( NoRobustness int = C.GLFW_NO_ROBUSTNESS NoResetNotification int = C.GLFW_NO_RESET_NOTIFICATION LoseContextOnReset int = C.GLFW_LOSE_CONTEXT_ON_RESET )
Values for the ContextRobustness hint.
const ( OpenglAnyProfile int = C.GLFW_OPENGL_ANY_PROFILE OpenglCoreProfile int = C.GLFW_OPENGL_CORE_PROFILE OpenglCompatProfile int = C.GLFW_OPENGL_COMPAT_PROFILE )
Values for the OpenglProfile hint.
TRUE and FALSE values to use with hints.
Variables ¶
var Inited bool
Functions ¶
func DefaultWindowHints ¶
func DefaultWindowHints()
DefaultHints resets all window hints to their default values.
func DetachCurrentContext ¶
func DetachCurrentContext()
DetachCurrentContext detaches the current context.
func ExtensionSupported ¶
ExtensionSupported returns whether the specified OpenGL or context creation API extension is supported by the current context. For example, on Windows both the OpenGL and WGL extension strings are checked.
As this functions searches one or more extension strings on each call, it is recommended that you cache its results if it's going to be used frequently. The extension strings will not change during the lifetime of a context, so there is no danger in doing this.
func GetJoystickAxes ¶
GetJoystickAxes returns a slice of axis values.
func GetJoystickButtons ¶
GetJoystickButtons returns a slice of button values.
func GetJoystickName ¶
GetJoystickName returns the name, encoded as UTF-8, of the specified joystick.
func GetTime ¶
func GetTime() float64
GetTime returns the value of the GLFW timer. Unless the timer has been set using SetTime, the timer measures time elapsed since GLFW was initialized.
The resolution of the timer is system dependent, but is usually on the order of a few micro- or nanoseconds. It uses the highest-resolution monotonic time source on each supported platform.
func GetVersion ¶
GetVersion retrieves the major, minor and revision numbers of the GLFW library. It is intended for when you are using GLFW as a shared library and want to ensure that you are using the minimum required version.
This function may be called before Init.
func GetVersionString ¶
func GetVersionString() string
GetVersionString returns a static string generated at compile-time according to which configuration macros were defined. This is intended for use when submitting bug reports, to allow developers to see which code paths are enabled in a binary.
This function may be called before Init.
func Init ¶
func Init() (res bool)
Init initializes the GLFW library. Before most GLFW functions can be used, GLFW must be initialized, and before a program terminates GLFW should be terminated in order to free any resources allocated during or after initialization.
If this function fails, it calls Terminate before returning. If it succeeds, you should call Terminate before the program exits.
Additional calls to this function after successful initialization but before termination will succeed but will do nothing.
This function may take several seconds to complete on some systems, while on other systems it may take only a fraction of a second to complete.
On Mac OS X, this function will change the current directory of the application to the Contents/Resources subdirectory of the application's bundle, if present.
func JoystickPresent ¶
GetJoystickPresent returns whether the specified joystick is present.
func Main ¶
func Main()
Main runs the main glfw service loop. The binary's main.main must call glfw.Main() to run this loop. Main does not return. If the binary needs to do other work, it must do it in separate goroutines.
func PollEvents ¶
func PollEvents()
PollEvents processes only those events that have already been received and then returns immediately. Processing events will cause the window and input callbacks associated with those events to be called.
This function is not required for joystick input to work.
This function may not be called from a callback.
func SetErrorCallback ¶
SetErrorCallback sets the error callback, which is called with an error code and a human-readable description each time a GLFW error occurs.
This function may be called before Init.
func SetMonitorCallback ¶
func SetMonitorCallback(cbfun func(monitor *Monitor, event MonitorEvent))
SetMonitorCallback sets the monitor configuration callback, or removes the currently set callback. This is called when a monitor is connected to or disconnected from the system.
func SetTime ¶
func SetTime(time float64)
SetTime sets the value of the GLFW timer. It then continues to count up from that value.
The resolution of the timer is system dependent, but is usually on the order of a few micro- or nanoseconds. It uses the highest-resolution monotonic time source on each supported platform.
func SwapInterval ¶
func SwapInterval(interval int)
SwapInterval sets the swap interval for the current context, i.e. the number of screen updates to wait before swapping the buffers of a window and returning from SwapBuffers. This is sometimes called 'vertical synchronization', 'vertical retrace synchronization' or 'vsync'.
Contexts that support either of the WGL_EXT_swap_control_tear and GLX_EXT_swap_control_tear extensions also accept negative swap intervals, which allow the driver to swap even if a frame arrives a little bit late. You can check for the presence of these extensions using ExtensionSupported. For more information about swap tearing, see the extension specifications.
Some GPU drivers do not honor the requested swap interval, either because of user settings that override the request or due to bugs in the driver.
func Terminate ¶
func Terminate()
Terminate destroys all remaining windows, frees any allocated resources and sets the library to an uninitialized state. Once this is called, you must again call Init successfully before you will be able to use most GLFW functions.
If GLFW has been successfully initialized, this function should be called before the program exits. If initialization fails, there is no need to call this function, as it is called by Init before it returns failure.
func WaitEvents ¶
func WaitEvents()
WaitEvents puts the calling thread to sleep until at least one event has been received. Once one or more events have been recevied, it behaves as if PollEvents was called, i.e. the events are processed and the function then returns immediately. Processing events will cause the window and input callbacks associated with those events to be called.
Since not all events are associated with callbacks, this function may return without a callback having been called even if you are monitoring all callbacks.
This function may not be called from a callback.
func WindowHint ¶
Hint function sets hints for the next call to CreateWindow. The hints, once set, retain their values until changed by a call to Hint or DefaultHints, or until the library is terminated with Terminate.
Types ¶
type Action ¶
type Action int
Action corresponds to a key or button action.
const ( Release Action = C.GLFW_RELEASE //The key or button was released. Press Action = C.GLFW_PRESS //The key or button was pressed. Repeat Action = C.GLFW_REPEAT //The key was held down until it repeated. )
type ErrorCode ¶
type ErrorCode int
ErrorCode corresponds to an error code.
const ( NotInitialized ErrorCode = C.GLFW_NOT_INITIALIZED //GLFW has not been initialized. NoCurrentContext ErrorCode = C.GLFW_NO_CURRENT_CONTEXT //No context is current. InvalidEnum ErrorCode = C.GLFW_INVALID_ENUM //One of the enum parameters for the function was given an invalid enum. InvalidValue ErrorCode = C.GLFW_INVALID_VALUE //One of the parameters for the function was given an invalid value. OutOfMemory ErrorCode = C.GLFW_OUT_OF_MEMORY //A memory allocation failed. PlatformError ErrorCode = C.GLFW_PLATFORM_ERROR //A platform-specific error occurred that does not match any of the more specific categories. )
Error codes.
type GammaRamp ¶
type GammaRamp struct { Red []uint16 //A slice of value describing the response of the red channel. Green []uint16 //A slice of value describing the response of the green channel. Blue []uint16 //A slice of value describing the response of the blue channel. }
GammaRamp describes the gamma ramp for a monitor.
type Hint ¶
type Hint int
Hint corresponds to hints that can be set before creating a window.
Hint also corresponds to the attributes of the window that can be get after its creation.
const ( Focused Hint = C.GLFW_FOCUSED //Specifies whether the window will be focused. Iconified Hint = C.GLFW_ICONIFIED //Specifies whether the window will be minimized. Visible Hint = C.GLFW_VISIBLE //Specifies whether the window will be initially visible. Resizable Hint = C.GLFW_RESIZABLE //Specifies whether the window will be resizable by the user. Decorated Hint = C.GLFW_DECORATED //Specifies whether the window will have window decorations such as a border, a close widget, etc. )
Window related hints.
const ( ClientApi Hint = C.GLFW_CLIENT_API //Specifies which client API to create the context for. Hard constraint. ContextVersionMajor Hint = C.GLFW_CONTEXT_VERSION_MAJOR //Specifies the client API version that the created context must be compatible with. ContextVersionMinor Hint = C.GLFW_CONTEXT_VERSION_MINOR //Specifies the client API version that the created context must be compatible with. ContextRobustness Hint = C.GLFW_CONTEXT_ROBUSTNESS //Specifies the robustness strategy to be used by the context. OpenglForwardCompatible Hint = C.GLFW_OPENGL_FORWARD_COMPAT //Specifies whether the OpenGL context should be forward-compatible. Hard constraint. OpenglDebugContext Hint = C.GLFW_OPENGL_DEBUG_CONTEXT OpenglProfile Hint = C.GLFW_OPENGL_PROFILE //Specifies which OpenGL profile to create the context for. Hard constraint. )
Context related hints.
const ( ContextRevision Hint = C.GLFW_CONTEXT_REVISION RedBits Hint = C.GLFW_RED_BITS //Specifies the desired bit depth of the default framebuffer. GreenBits Hint = C.GLFW_GREEN_BITS //Specifies the desired bit depth of the default framebuffer. BlueBits Hint = C.GLFW_BLUE_BITS //Specifies the desired bit depth of the default framebuffer. AlphaBits Hint = C.GLFW_ALPHA_BITS //Specifies the desired bit depth of the default framebuffer. DepthBits Hint = C.GLFW_DEPTH_BITS //Specifies the desired bit depth of the default framebuffer. StencilBits Hint = C.GLFW_STENCIL_BITS //Specifies the desired bit depth of the default framebuffer. AccumRedBits Hint = C.GLFW_ACCUM_RED_BITS //Specifies the desired bit depth of the accumulation buffer. AccumGreenBits Hint = C.GLFW_ACCUM_GREEN_BITS //Specifies the desired bit depth of the accumulation buffer. AccumBlueBits Hint = C.GLFW_ACCUM_BLUE_BITS //Specifies the desired bit depth of the accumulation buffer. AccumAlphaBits Hint = C.GLFW_ACCUM_ALPHA_BITS //Specifies the desired bit depth of the accumulation buffer. AuxBuffers Hint = C.GLFW_AUX_BUFFERS //Specifies the desired number of auxiliary buffers. Stereo Hint = C.GLFW_STEREO //Specifies whether to use stereoscopic rendering. Hard constraint. Samples Hint = C.GLFW_SAMPLES //Specifies the desired number of samples to use for multisampling. Zero disables multisampling. SrgbCapable Hint = C.GLFW_SRGB_CAPABLE //Specifies whether the framebuffer should be sRGB capable. )
Framebuffer related hints.
type InputMode ¶
type InputMode int
InputMode corresponds to an input mode.
const ( Cursor InputMode = C.GLFW_CURSOR //See Cursor mode values StickyKeys InputMode = C.GLFW_STICKY_KEYS //Value can be either 1 or 0 StickyMouseButtons InputMode = C.GLFW_STICKY_MOUSE_BUTTONS //Value can be either 1 or 0 )
Input modes
type Joystick ¶
type Joystick int
Joystick corresponds to a joystick.
const ( Joystick1 Joystick = C.GLFW_JOYSTICK_1 Joystick2 Joystick = C.GLFW_JOYSTICK_2 Joystick3 Joystick = C.GLFW_JOYSTICK_3 Joystick4 Joystick = C.GLFW_JOYSTICK_4 Joystick5 Joystick = C.GLFW_JOYSTICK_5 Joystick6 Joystick = C.GLFW_JOYSTICK_6 Joystick7 Joystick = C.GLFW_JOYSTICK_7 Joystick8 Joystick = C.GLFW_JOYSTICK_8 Joystick9 Joystick = C.GLFW_JOYSTICK_9 Joystick10 Joystick = C.GLFW_JOYSTICK_10 Joystick11 Joystick = C.GLFW_JOYSTICK_11 Joystick12 Joystick = C.GLFW_JOYSTICK_12 Joystick13 Joystick = C.GLFW_JOYSTICK_13 Joystick14 Joystick = C.GLFW_JOYSTICK_14 Joystick15 Joystick = C.GLFW_JOYSTICK_15 Joystick16 Joystick = C.GLFW_JOYSTICK_16 JoystickLast Joystick = C.GLFW_JOYSTICK_LAST )
Joystick IDs
type Key ¶
type Key int
Key corresponds to a keyboard key.
const ( KeyUnknown Key = C.GLFW_KEY_UNKNOWN KeySpace Key = C.GLFW_KEY_SPACE KeyApostrophe Key = C.GLFW_KEY_APOSTROPHE KeyComma Key = C.GLFW_KEY_COMMA KeyMinus Key = C.GLFW_KEY_MINUS KeyPeriod Key = C.GLFW_KEY_PERIOD KeySlash Key = C.GLFW_KEY_SLASH Key0 Key = C.GLFW_KEY_0 Key1 Key = C.GLFW_KEY_1 Key2 Key = C.GLFW_KEY_2 Key3 Key = C.GLFW_KEY_3 Key4 Key = C.GLFW_KEY_4 Key5 Key = C.GLFW_KEY_5 Key6 Key = C.GLFW_KEY_6 Key7 Key = C.GLFW_KEY_7 Key8 Key = C.GLFW_KEY_8 Key9 Key = C.GLFW_KEY_9 KeySemicolon Key = C.GLFW_KEY_SEMICOLON KeyEqual Key = C.GLFW_KEY_EQUAL KeyA Key = C.GLFW_KEY_A KeyB Key = C.GLFW_KEY_B KeyC Key = C.GLFW_KEY_C KeyD Key = C.GLFW_KEY_D KeyE Key = C.GLFW_KEY_E KeyF Key = C.GLFW_KEY_F KeyG Key = C.GLFW_KEY_G KeyH Key = C.GLFW_KEY_H KeyI Key = C.GLFW_KEY_I KeyJ Key = C.GLFW_KEY_J KeyK Key = C.GLFW_KEY_K KeyL Key = C.GLFW_KEY_L KeyM Key = C.GLFW_KEY_M KeyN Key = C.GLFW_KEY_N KeyO Key = C.GLFW_KEY_O KeyP Key = C.GLFW_KEY_P KeyQ Key = C.GLFW_KEY_Q KeyR Key = C.GLFW_KEY_R KeyS Key = C.GLFW_KEY_S KeyT Key = C.GLFW_KEY_T KeyU Key = C.GLFW_KEY_U KeyV Key = C.GLFW_KEY_V KeyW Key = C.GLFW_KEY_W KeyX Key = C.GLFW_KEY_X KeyY Key = C.GLFW_KEY_Y KeyZ Key = C.GLFW_KEY_Z KeyLeftBracket Key = C.GLFW_KEY_LEFT_BRACKET KeyBackslash Key = C.GLFW_KEY_BACKSLASH KeyRightBracket Key = C.GLFW_KEY_RIGHT_BRACKET KeyGraveAccent Key = C.GLFW_KEY_GRAVE_ACCENT KeyWorld1 Key = C.GLFW_KEY_WORLD_1 KeyWorld2 Key = C.GLFW_KEY_WORLD_2 KeyEscape Key = C.GLFW_KEY_ESCAPE KeyEnter Key = C.GLFW_KEY_ENTER KeyTab Key = C.GLFW_KEY_TAB KeyBackspace Key = C.GLFW_KEY_BACKSPACE KeyInsert Key = C.GLFW_KEY_INSERT KeyDelete Key = C.GLFW_KEY_DELETE KeyRight Key = C.GLFW_KEY_RIGHT KeyLeft Key = C.GLFW_KEY_LEFT KeyDown Key = C.GLFW_KEY_DOWN KeyUp Key = C.GLFW_KEY_UP KeyPageUp Key = C.GLFW_KEY_PAGE_UP KeyPageDown Key = C.GLFW_KEY_PAGE_DOWN KeyHome Key = C.GLFW_KEY_HOME KeyEnd Key = C.GLFW_KEY_END KeyCapsLock Key = C.GLFW_KEY_CAPS_LOCK KeyScrollLock Key = C.GLFW_KEY_SCROLL_LOCK KeyNumLock Key = C.GLFW_KEY_NUM_LOCK KeyPrintScreen Key = C.GLFW_KEY_PRINT_SCREEN KeyPause Key = C.GLFW_KEY_PAUSE KeyF1 Key = C.GLFW_KEY_F1 KeyF2 Key = C.GLFW_KEY_F2 KeyF3 Key = C.GLFW_KEY_F3 KeyF4 Key = C.GLFW_KEY_F4 KeyF5 Key = C.GLFW_KEY_F5 KeyF6 Key = C.GLFW_KEY_F6 KeyF7 Key = C.GLFW_KEY_F7 KeyF8 Key = C.GLFW_KEY_F8 KeyF9 Key = C.GLFW_KEY_F9 KeyF10 Key = C.GLFW_KEY_F10 KeyF11 Key = C.GLFW_KEY_F11 KeyF12 Key = C.GLFW_KEY_F12 KeyF13 Key = C.GLFW_KEY_F13 KeyF14 Key = C.GLFW_KEY_F14 KeyF15 Key = C.GLFW_KEY_F15 KeyF16 Key = C.GLFW_KEY_F16 KeyF17 Key = C.GLFW_KEY_F17 KeyF18 Key = C.GLFW_KEY_F18 KeyF19 Key = C.GLFW_KEY_F19 KeyF20 Key = C.GLFW_KEY_F20 KeyF21 Key = C.GLFW_KEY_F21 KeyF22 Key = C.GLFW_KEY_F22 KeyF23 Key = C.GLFW_KEY_F23 KeyF24 Key = C.GLFW_KEY_F24 KeyF25 Key = C.GLFW_KEY_F25 KeyKp0 Key = C.GLFW_KEY_KP_0 KeyKp1 Key = C.GLFW_KEY_KP_1 KeyKp2 Key = C.GLFW_KEY_KP_2 KeyKp3 Key = C.GLFW_KEY_KP_3 KeyKp4 Key = C.GLFW_KEY_KP_4 KeyKp5 Key = C.GLFW_KEY_KP_5 KeyKp6 Key = C.GLFW_KEY_KP_6 KeyKp7 Key = C.GLFW_KEY_KP_7 KeyKp8 Key = C.GLFW_KEY_KP_8 KeyKp9 Key = C.GLFW_KEY_KP_9 KeyKpDecimal Key = C.GLFW_KEY_KP_DECIMAL KeyKpDivide Key = C.GLFW_KEY_KP_DIVIDE KeyKpMultiply Key = C.GLFW_KEY_KP_MULTIPLY KeyKpSubtract Key = C.GLFW_KEY_KP_SUBTRACT KeyKpAdd Key = C.GLFW_KEY_KP_ADD KeyKpEnter Key = C.GLFW_KEY_KP_ENTER KeyKpEqual Key = C.GLFW_KEY_KP_EQUAL KeyLeftShift Key = C.GLFW_KEY_LEFT_SHIFT KeyLeftControl Key = C.GLFW_KEY_LEFT_CONTROL KeyLeftAlt Key = C.GLFW_KEY_LEFT_ALT KeyLeftSuper Key = C.GLFW_KEY_LEFT_SUPER KeyRightShift Key = C.GLFW_KEY_RIGHT_SHIFT KeyRightControl Key = C.GLFW_KEY_RIGHT_CONTROL KeyRightAlt Key = C.GLFW_KEY_RIGHT_ALT KeyRightSuper Key = C.GLFW_KEY_RIGHT_SUPER KeyMenu Key = C.GLFW_KEY_MENU KeyLast Key = C.GLFW_KEY_LAST )
These key codes are inspired by the USB HID Usage Tables v1.12 (p. 53-60), but re-arranged to map to 7-bit ASCII for printable keys (function keys are put in the 256+ range).
type ModifierKey ¶
type ModifierKey int
ModifierKey corresponds to a modifier key.
const ( ModShift ModifierKey = C.GLFW_MOD_SHIFT ModControl ModifierKey = C.GLFW_MOD_CONTROL ModAlt ModifierKey = C.GLFW_MOD_ALT ModSuper ModifierKey = C.GLFW_MOD_SUPER )
Modifier keys
type Monitor ¶
type Monitor struct {
// contains filtered or unexported fields
}
func GetMonitors ¶
GetMonitors returns a slice of handles for all currently connected monitors.
func GetPrimaryMonitor ¶
GetPrimaryMonitor returns the primary monitor. This is usually the monitor where elements like the Windows task bar or the OS X menu bar is located.
func (*Monitor) GetGammaRamp ¶
GetGammaRamp retrieves the current gamma ramp of the monitor.
func (*Monitor) GetPhysicalSize ¶
GetPhysicalSize returns the size, in millimetres, of the display area of the monitor.
Note: Some operating systems do not provide accurate information, either because the monitor's EDID data is incorrect, or because the driver does not report it accurately.
func (*Monitor) GetPosition ¶
GetPosition returns the position, in screen coordinates, of the upper-left corner of the monitor.
func (*Monitor) GetVideoMode ¶
GetVideoMode returns the current video mode of the monitor. If you are using a full screen window, the return value will therefore depend on whether it is focused.
func (*Monitor) GetVideoModes ¶
GetVideoModes returns an array of all video modes supported by the monitor. The returned array is sorted in ascending order, first by color bit depth (the sum of all channel depths) and then by resolution area (the product of width and height).
func (*Monitor) SetGamma ¶
SetGamma generates a 256-element gamma ramp from the specified exponent and then calls SetGamma with it.
func (*Monitor) SetGammaRamp ¶
SetGammaRamp sets the current gamma ramp for the monitor.
type MonitorEvent ¶
type MonitorEvent int
MonitorEvent corresponds to a monitor configuration event.
const ( Connected MonitorEvent = C.GLFW_CONNECTED Disconnected MonitorEvent = C.GLFW_DISCONNECTED )
Monitor events.
type MouseButton ¶
type MouseButton int
MouseButton corresponds to a mouse button.
const ( MouseButton1 MouseButton = C.GLFW_MOUSE_BUTTON_1 MouseButton2 MouseButton = C.GLFW_MOUSE_BUTTON_2 MouseButton3 MouseButton = C.GLFW_MOUSE_BUTTON_3 MouseButton4 MouseButton = C.GLFW_MOUSE_BUTTON_4 MouseButton5 MouseButton = C.GLFW_MOUSE_BUTTON_5 MouseButton6 MouseButton = C.GLFW_MOUSE_BUTTON_6 MouseButton7 MouseButton = C.GLFW_MOUSE_BUTTON_7 MouseButton8 MouseButton = C.GLFW_MOUSE_BUTTON_8 MouseButtonLast MouseButton = C.GLFW_MOUSE_BUTTON_LAST MouseButtonLeft MouseButton = C.GLFW_MOUSE_BUTTON_LEFT MouseButtonRight MouseButton = C.GLFW_MOUSE_BUTTON_RIGHT MouseButtonMiddle MouseButton = C.GLFW_MOUSE_BUTTON_MIDDLE )
Mouse buttons
type VideoMode ¶
type VideoMode struct { Width int //The width, in pixels, of the video mode. Height int //The height, in pixels, of the video mode. RedBits int //The bit depth of the red channel of the video mode. GreenBits int //The bit depth of the green channel of the video mode. BlueBits int //The bit depth of the blue channel of the video mode. RefreshRate int //The refresh rate, in Hz, of the video mode. }
VideoMode describes a single video mode.
type Window ¶
type Window struct {
// contains filtered or unexported fields
}
func CreateWindow ¶
func CreateWindow(width, height int, title string, monitor *Monitor, share *Window) (*Window, error)
CreateWindow creates a window and its associated context. Most of the options controlling how the window and its context should be created are specified through Hint.
Successful creation does not change which context is current. Before you can use the newly created context, you need to make it current using MakeContextCurrent.
Note that the created window and context may differ from what you requested, as not all parameters and hints are hard constraints. This includes the size of the window, especially for full screen windows. To retrieve the actual attributes of the created window and context, use queries like GetWindowAttrib and GetWindowSize.
To create the window at a specific position, make it initially invisible using the Visible window hint, set its position and then show it.
If a fullscreen window is active, the screensaver is prohibited from starting.
Windows: If the executable has an icon resource named GLFW_ICON, it will be set as the icon for the window. If no such icon is present, the IDI_WINLOGO icon will be used instead.
Mac OS X: The GLFW window has no icon, as it is not a document window, but the dock icon will be the same as the application bundle's icon. Also, the first time a window is opened the menu bar is populated with common commands like Hide, Quit and About. The (minimal) about dialog uses information from the application's bundle. For more information on bundles, see the Bundle Programming Guide provided by Apple.
func GetCurrentContext ¶
GetCurrentContext returns the window whose context is current.
func (*Window) Destroy ¶
func (w *Window) Destroy()
Destroy destroys the specified window and its context. On calling this function, no further callbacks will be called for that window.
func (*Window) GetAttribute ¶
GetAttribute returns an attribute of the window. There are many attributes, some related to the window and others to its context.
func (*Window) GetClipboardString ¶
GetClipboardString returns the contents of the system clipboard, if it contains or is convertible to a UTF-8 encoded string.
func (*Window) GetCursorPosition ¶
GetCursorPosition returns the last reported position of the cursor.
If the cursor is disabled (with CursorDisabled) then the cursor position is unbounded and limited only by the minimum and maximum values of a double.
The coordinate can be converted to their integer equivalents with the floor function. Casting directly to an integer type works for positive coordinates, but fails for negative ones.
func (*Window) GetFramebufferSize ¶
GetFramebufferSize retrieves the size, in pixels, of the framebuffer of the specified window.
func (*Window) GetInputMode ¶
GetInputMode returns the value of an input option of the window.
func (*Window) GetKey ¶
GetKey returns the last reported state of a keyboard key. The returned state is one of Press or Release. The higher-level state Repeat is only reported to the key callback.
If the StickyKeys input mode is enabled, this function returns Press the first time you call this function after a key has been pressed, even if the key has already been released.
The key functions deal with physical keys, with key tokens named after their use on the standard US keyboard layout. If you want to input text, use the Unicode character callback instead.
func (*Window) GetMonitor ¶
GetMonitor returns the handle of the monitor that the window is in fullscreen on.
func (*Window) GetMouseButton ¶
func (w *Window) GetMouseButton(button MouseButton) Action
GetMouseButton returns the last state reported for the specified mouse button.
If the StickyMouseButtons input mode is enabled, this function returns Press the first time you call this function after a mouse button has been pressed, even if the mouse button has already been released.
func (*Window) GetPosition ¶
GetPosition returns the position, in screen coordinates, of the upper-left corner of the client area of the window.
func (*Window) GetSize ¶
GetSize returns the size, in screen coordinates, of the client area of the specified window.
func (*Window) GetUserPointer ¶
GetUserPointer returns the current value of the user-defined pointer of the window. The initial value is nil.
func (*Window) Hide ¶
func (w *Window) Hide()
Hide hides the window, if it was previously visible. If the window is already hidden or is in full screen mode, this function does nothing.
func (*Window) Iconify ¶
func (w *Window) Iconify()
Iconfiy iconifies/minimizes the window, if it was previously restored. If it is a full screen window, the original monitor resolution is restored until the window is restored. If the window is already iconified, this function does nothing.
func (*Window) MakeContextCurrent ¶
func (w *Window) MakeContextCurrent()
MakeContextCurrent makes the context of the window current.
func (*Window) Restore ¶
func (w *Window) Restore()
Restore restores the window, if it was previously iconified/minimized. If it is a full screen window, the resolution chosen for the window is restored on the selected monitor. If the window is already restored, this function does nothing.
func (*Window) SetCharacterCallback ¶
SetCharacterCallback sets the character callback which is called when a Unicode character is input.
The character callback is intended for text input. If you want to know whether a specific key was pressed or released, use the key callback instead.
func (*Window) SetClipboardString ¶
SetClipboardString sets the system clipboard to the specified UTF-8 encoded string.
func (*Window) SetCloseCallback ¶
SetCloseCallback sets the close callback of the window, which is called when the user attempts to close the window, for example by clicking the close widget in the title bar.
The close flag is set before this callback is called, but you can modify it at any time with SetShouldClose.
Mac OS X: Selecting Quit from the application menu will trigger the close callback for all windows.
func (*Window) SetCursorEnterCallback ¶
SetCursorEnterCallback the cursor boundary crossing callback which is called when the cursor enters or leaves the client area of the window.
func (*Window) SetCursorPosition ¶
SetCursorPosition sets the position of the cursor. The specified window mus be focused. If the window does not have focus when this function is called, it fails silently.
If the cursor is disabled (with CursorDisabled) then the cursor position is unbounded and limited only by the minimum and maximum values of a double.
func (*Window) SetCursorPositionCallback ¶
SetCursorPositionCallback sets the cursor position callback which is called when the cursor is moved. The callback is provided with the position relative to the upper-left corner of the client area of the window.
func (*Window) SetFocusCallback ¶
SetFocusCallback sets the focus callback of the window, which is called when the window gains or loses focus.
After the focus callback is called for a window that lost focus, synthetic key and mouse button release events will be generated for all such that had been pressed. For more information, see SetKeyCallback and SetMouseButtonCallback.
func (*Window) SetFramebufferSizeCallback ¶
SetFramebufferSizeCallback sets the framebuffer resize callback of the specified window, which is called when the framebuffer of the specified window is resized.
func (*Window) SetIconifyCallback ¶
SetIconifyCallback sets the iconification callback of the window, which is called when the window is iconified or restored.
func (*Window) SetInputMode ¶
Sets an input option for the window.
func (*Window) SetKeyCallback ¶
func (w *Window) SetKeyCallback(cbfun func(w *Window, key Key, scancode int, action Action, mods ModifierKey))
SetKeyCallback sets the key callback which is called when a key is pressed, repeated or released.
The key functions deal with physical keys, with layout independent key tokens named after their values in the standard US keyboard layout. If you want to input text, use the SetCharCallback instead.
When a window loses focus, it will generate synthetic key release events for all pressed keys. You can tell these events from user-generated events by the fact that the synthetic ones are generated after the window has lost focus, i.e. Focused will be false and the focus callback will have already been called.
func (*Window) SetMouseButtonCallback ¶
func (w *Window) SetMouseButtonCallback(cbfun func(w *Window, button MouseButton, action Action, mod ModifierKey))
SetMouseButtonCallback sets the mouse button callback which is called when a mouse button is pressed or released.
When a window loses focus, it will generate synthetic mouse button release events for all pressed mouse buttons. You can tell these events from user-generated events by the fact that the synthetic ones are generated after the window has lost focus, i.e. Focused will be false and the focus callback will have already been called.
func (*Window) SetPosition ¶
SetPosition sets the position, in screen coordinates, of the upper-left corner of the client area of the window.
If it is a full screen window, this function does nothing.
If you wish to set an initial window position you should create a hidden window (using Hint and Visible), set its position and then show it.
It is very rarely a good idea to move an already visible window, as it will confuse and annoy the user.
The window manager may put limits on what positions are allowed.
func (*Window) SetPositionCallback ¶
SetPositionCallback sets the position callback of the window, which is called when the window is moved. The callback is provided with the screen position of the upper-left corner of the client area of the window.
func (*Window) SetRefreshCallback ¶
SetRefreshCallback sets the refresh callback of the window, which is called when the client area of the window needs to be redrawn, for example if the window has been exposed after having been covered by another window.
On compositing window systems such as Aero, Compiz or Aqua, where the window contents are saved off-screen, this callback may be called only very infrequently or never at all.
func (*Window) SetScrollCallback ¶
SetScrollCallback sets the scroll callback which is called when a scrolling device is used, such as a mouse wheel or scrolling area of a touchpad.
func (*Window) SetShouldClose ¶
SetShouldClose sets the value of the close flag of the window. This can be used to override the user's attempt to close the window, or to signal that it should be closed.
func (*Window) SetSize ¶
SetSize sets the size, in screen coordinates, of the client area of the window.
For full screen windows, this function selects and switches to the resolution closest to the specified size, without affecting the window's context. As the context is unaffected, the bit depths of the framebuffer remain unchanged.
The window manager may put limits on what window sizes are allowed.
func (*Window) SetSizeCallback ¶
SetSizeCallback sets the size callback of the window, which is called when the window is resized. The callback is provided with the size, in screen coordinates, of the client area of the window.
func (*Window) SetUserPointer ¶
SetUserPointer sets the user-defined pointer of the window. The current value is retained until the window is destroyed. The initial value is nil.
func (*Window) ShouldClose ¶
ShouldClose returns the value of the close flag of the specified window.
func (*Window) Show ¶
func (w *Window) Show()
Show makes the window visible, if it was previously hidden. If the window is already visible or is in full screen mode, this function does nothing.
func (*Window) SwapBuffers ¶
func (w *Window) SwapBuffers()
SwapBuffers swaps the front and back buffers of the window. If the swap interval is greater than zero, the GPU driver waits the specified number of screen updates before swapping the buffers.