Documentation
¶
Overview ¶
Package gogogd is the umbrella for the gogogd authoring API.
Most user-facing helpers and type aliases live here as re-exports of the bare packages underneath (`timing`, `signals`, `actions`, `scenetree`, `tree`, `spawn`, `strict`, …). Users who prefer the bare-package shape can import those directly; users who want one import can get most of what they need from this package.
Two things are NOT in the umbrella:
- The per-class packages under `classdb/` (Node, CharacterBody2D, Control, …). There are ~500 of them and users only need the handful their components actually subclass — importing those directly keeps the import list informative.
- The engine entry point. `main()` calls `startup.Scene()` from "github.com/AveryLucas/gogogd/startup". We can't re-export it through the umbrella without an import cycle (startup blank-imports this package for cgo linking).
A typical component file is two imports:
import (
"github.com/AveryLucas/gogogd"
"github.com/AveryLucas/gogogd/classdb/CharacterBody2D"
)
Index ¶
- func Add(parent Node.Instance, thing any, pos Vec2) Node.Instance
- func Add3(parent Node.Instance, thing any, pos Vec3) Node.Instance
- func AddChild(parent Node.Instance, thing any) Node.Instance
- func AddNew[T interface{ ... }](parent Node.Instance, newFn func() T) T
- func After(owner Node.Instance, dt Delta, fn func())
- func AncestorOf[T Object.Any](start Node.Instance) (T, bool)
- func As[T Object.Any](value Object.Any) (T, bool)
- func Assert(target any)
- func ChangeScene(any Node.Instance, path string) error
- func Children[T Object.Any](parent Node.Instance) []T
- func Connect[T any](owner Node.Instance, sig *Signal[T], fn func(T))
- func Connect0(owner Node.Instance, sig *Signal0, fn func())
- func Connect2[A, B any](owner Node.Instance, sig *Signal2[A, B], fn func(A, B))
- func Connect3[A, B, C any](owner Node.Instance, sig *Signal3[A, B, C], fn func(A, B, C))
- func Descendants[T Object.Any](parent Node.Instance) []T
- func Every(owner Node.Instance, dt Delta, fn func())
- func Find[T Object.Any](any Node.Instance) (T, bool)
- func IsPaused(any Node.Instance) bool
- func JustPressed(action string) bool
- func JustReleased(action string) bool
- func Must[T any](v T, err error) T
- func MustOk[T any](v T, ok bool) T
- func OnExit(owner Node.Instance, fn func())
- func OnMainThread(fn func())
- func OnlyIf[T, In Object.Any](fn func(T)) func(In)
- func OnlyIfBody2D[T Object.Any](fn func(T)) func(Node2D.Instance)
- func Pressed(action string) bool
- func Quit(any Node.Instance)
- func ReloadScene(any Node.Instance) error
- func SetPaused(any Node.Instance, paused bool)
- type Class
- type Col
- type Cooldown
- type Delta
- type EulerRadians
- type Radians
- type Signal
- type Signal0
- type Signal2
- type Signal3
- type Vec2
- type Vec3
- type Vec4
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Add ¶
Add adds `thing` as a child of `parent` and positions it at `pos`. Polymorphic over: a Go value implementing AsNode, a PackedScene instance, or a string scene path ("res://x.tscn").
func AddChild ¶
AddChild adds `thing` as a child of `parent` without setting a position. Useful for non-spatial children.
func AddNew ¶
AddNew constructs a fresh T via `newFn` and adds it as a child of `parent`. Used for stock Godot node types (Timer, etc.) that have their own constructor.
func After ¶
After schedules `fn` to run once after `dt` seconds. The schedule is owner-bound: if `owner` exits the tree before the timer fires, `fn` is dropped.
func AncestorOf ¶
AncestorOf walks up from `start` and returns the nearest ancestor matching type T.
func As ¶
As converts `value` to the requested type T (typically a leaf Instance type). Returns (T, false) if the conversion isn't valid.
func Assert ¶
func Assert(target any)
Assert validates every `ggd:"strict"` tagged child field on `target` is populated by a scene-authored node (not an auto-created runtime stub). Call from Ready.
func (m *MainMenu) Ready() {
gogogd.Assert(m)
// ... fields are now guaranteed scene-authored
}
Panics on any unset strict field.
func ChangeScene ¶
ChangeScene switches to the scene at `path` (typically "res://x.tscn").
func Connect0 ¶
Connect0 owner-binds a void-signal handler. When `owner` exits the scene tree, the connection auto-detaches.
func Descendants ¶
Descendants returns every descendant of `parent` whose type matches T.
func Every ¶
Every schedules `fn` to run on a repeating `dt`-second interval. Owner-bound — auto-cancels on owner exit.
func JustPressed ¶
JustPressed reports whether the named input action transitioned to pressed this frame.
func JustReleased ¶
JustReleased reports whether the named input action transitioned to released this frame.
func Must ¶
Must adapts an (T, error) return into a T, panicking on non-nil error. Use for component code that *expects* the value to be there.
func OnMainThread ¶
func OnMainThread(fn func())
OnMainThread runs `fn` on Godot's main thread. Use from a goroutine when you need to touch any Godot node, since cross-thread node access is unsafe.
func OnlyIf ¶
OnlyIf wraps a typed handler so it only fires when the incoming argument is of type T. Common with signals whose payload type is looser than what you want to react to.
area.OnBodyEntered(gogogd.OnlyIf(func(p *Player) { p.Hit() }))
func OnlyIfBody2D ¶
OnlyIfBody2D is the Node2D-specialised version of OnlyIf for physics-body overlap signals.
func Quit ¶
Quit shuts the engine down cleanly. `any` is any node in the tree (used to reach SceneTree).
func ReloadScene ¶
ReloadScene reloads the current scene from disk.
Types ¶
type Class ¶
Class is the interface every registered gogogd class implements (via embedding `<Class>.Extension[Self]`). Alias for classdb.Class.
type Cooldown ¶
Cooldown is a zero-value-ready countdown timer. Tick each frame; Ready() reports whether the cooldown has elapsed; Reset starts it over.
type Delta ¶
Delta is the frame-delta-time type passed to Process / PhysicsProcess. Alias for Float.X (float32).
type EulerRadians ¶
type EulerRadians = gd.EulerRadians
EulerRadians is a 3-axis Euler-angle triplet in radians.
type Signal ¶
Signal is a single-payload signal. Declare as a struct field:
type Player struct {
Node.Extension[Player] `gd:"Player"`
HPChanged gogogd.Signal[int]
}
type Signal0 ¶
Signal0 is a void signal (no payload). Declare as a struct field:
type Coin struct {
Area2D.Extension[Coin] `gd:"Coin"`
Collected gogogd.Signal0
}
type Vec2 ¶
Vec2 is a 2D vector (X, Y). Alias for Vector2.XY.
func MouseDirectionFrom ¶
MouseDirectionFrom returns the unit vector pointing from `from` to the current mouse position in `any`'s coordinate space.
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
Package actions provides input-action polling and mouse helpers, plus the WASD-vector convenience.
|
Package actions provides input-action polling and mouse helpers, plus the WASD-vector convenience. |
|
Package audio exposes Godot's audio-bus controls in a chainable, name-keyed form.
|
Package audio exposes Godot's audio-bus controls in a chainable, name-keyed form. |
|
Package bus provides a process-global string-keyed pub/sub channel.
|
Package bus provides a process-global string-keyed pub/sub channel. |
|
cmd
|
|
|
gd
command
The 'gd' command is designed as a drop-in replacement of the 'go' command when working with Godot-based projects.
|
The 'gd' command is designed as a drop-in replacement of the 'go' command when working with Godot-based projects. |
|
gd/internal/cryptic
Package cryptic provides functions for generating deterministic RSA keys and self-signed certificates.
|
Package cryptic provides functions for generating deterministic RSA keys and self-signed certificates. |
|
gd/internal/cryptic/atomicfile
Implement atomic write-rename file pattern.
|
Implement atomic write-rename file pattern. |
|
gd/internal/cryptic/binpatch
A means of conveying a series of edits to binary files.
|
A means of conveying a series of edits to binary files. |
|
gd/internal/cryptic/pkcs7
PKCS#7 is a specification for signing or encrypting data using ASN.1 structures.
|
PKCS#7 is a specification for signing or encrypting data using ASN.1 structures. |
|
gd/internal/cryptic/pkcs9
PKCS#9 is a specification for trusted timestamping.
|
PKCS#9 is a specification for trusted timestamping. |
|
gd/internal/cryptic/rsa
Package rsa implements RSA encryption as specified in PKCS#1.
|
Package rsa implements RSA encryption as specified in PKCS#1. |
|
gd/internal/refactor/eg
Package eg implements the example-based refactoring tool whose command-line is defined in golang.org/x/tools/cmd/eg.
|
Package eg implements the example-based refactoring tool whose command-line is defined in golang.org/x/tools/cmd/eg. |
|
gogogd
command
Command gogogd is the gogogd toolchain CLI.
|
Command gogogd is the gogogd toolchain CLI. |
|
Package debug provides developer-time inspection helpers: live value watches, FPS readout, and a minimal in-game overlay.
|
Package debug provides developer-time inspection helpers: live value watches, FPS readout, and a minimal in-game overlay. |
|
Package fsm provides flat (single-level) finite state machines for components that need explicit, transition-bounded behavior.
|
Package fsm provides flat (single-level) finite state machines for components that need explicit, transition-bounded behavior. |
|
Package fx provides screen-feel helpers: hit-flash, hit-stop, screen shake.
|
Package fx provides screen-feel helpers: hit-flash, hit-stop, screen shake. |
|
Package gd is the umbrella of short, curated aliases for the types every Godot game touches every day: Vec2 / Vec3 / Col / Delta / Radians, plus the registration constraint and a couple of must-or-panic idioms.
|
Package gd is the umbrella of short, curated aliases for the types every Godot game touches every day: Vec2 / Vec3 / Col / Delta / Radians, plus the registration constraint and a couple of must-or-panic idioms. |
|
Package i18n provides translation lookup (Tr), locale switching (SetLocale), and a registry of widget bindings that auto-retranslate when the locale changes.
|
Package i18n provides translation lookup (Tr), locale switching (SetLocale), and a registry of widget bindings that auto-retranslate when the locale changes. |
|
Code generated by the generate package DO NOT EDIT
|
Code generated by the generate package DO NOT EDIT |
|
callerpc
Package callerpc provides fast caller PC capture via assembly.
|
Package callerpc provides fast caller PC capture via assembly. |
|
gdclass
Code generated by the generate package DO NOT EDIT
|
Code generated by the generate package DO NOT EDIT |
|
gddocs
command
[gdscript] var code_preview = TextEdit.new() var highlighter = GDScriptSyntaxHighlighter.new() code_preview.syntax_highlighter = highlighter [/gdscript] [csharp] var codePreview = new TextEdit(); var highlighter = new GDScriptSyntaxHighlighter(); codePreview.SyntaxHighlighter = highlighter; [/csharp]
|
[gdscript] var code_preview = TextEdit.new() var highlighter = GDScriptSyntaxHighlighter.new() code_preview.syntax_highlighter = highlighter [/gdscript] [csharp] var codePreview = new TextEdit(); var highlighter = new GDScriptSyntaxHighlighter(); codePreview.SyntaxHighlighter = highlighter; [/csharp] |
|
gdextension
Package gdextension is gogogd's authoritative Go representation of the Godot C GDExtension API.
|
Package gdextension is gogogd's authoritative Go representation of the Godot C GDExtension API. |
|
gdmemory
Package gdmemory provides functions for transferring data between Go and the graphics engine.
|
Package gdmemory provides functions for transferring data between Go and the graphics engine. |
|
ie
Package ie provides abbreviations for generated code.
|
Package ie provides abbreviations for generated code. |
|
loosely
Package loosely provides loose any-to-any type conversions with support for all variant types.
|
Package loosely provides loose any-to-any type conversions with support for all variant types. |
|
pointers
Package pointers provides managed pointers that are invisible to the Go runtime.
|
Package pointers provides managed pointers that are invisible to the Go runtime. |
|
rodatacheck
Package rodatacheck detects whether a Go string is backed by the binary's read-only data section (i.e.
|
Package rodatacheck detects whether a Go string is backed by the binary's read-only data section (i.e. |
|
tool/addressables
command
|
|
|
tool/builtins
command
builtins checks gdmaths and gdvalue packages for builtin class methods and reports any builtin methods that are missing from gd or any duplicates.
|
builtins checks gdmaths and gdvalue packages for builtin class methods and reports any builtin methods that are missing from gd or any duplicates. |
|
tool/callables
command
|
|
|
tool/constants
command
|
|
|
tool/distinctor
command
|
|
|
tool/enumerate
command
|
|
|
tool/generate
command
|
|
|
tool/generate/v2
command
|
|
|
tool/lifetimer
command
|
|
|
tool/nocircle
command
|
|
|
tool/resourceful
command
|
|
|
tool/structables
command
|
|
|
tool/transdoc
command
|
|
|
Package physics provides typed 2D physics queries (raycasts, shape-overlap) with a small, opinionated result type.
|
Package physics provides typed 2D physics queries (raycasts, shape-overlap) with a small, opinionated result type. |
|
Package pool provides a fixed-capacity object pool for spawn-heavy scene-tree code: bullets, particles, debris.
|
Package pool provides a fixed-capacity object pool for spawn-heavy scene-tree code: bullets, particles, debris. |
|
Package save provides typed, versioned save slots backed by Godot's FileAccess.
|
Package save provides typed, versioned save slots backed by Godot's FileAccess. |
|
Package scenetree provides convenience wrappers for the common SceneTree operations: Quit, ChangeScene, ReloadScene, SetPaused.
|
Package scenetree provides convenience wrappers for the common SceneTree operations: Quit, ChangeScene, ReloadScene, SetPaused. |
|
Package sequence runs a list of timeline steps in order, with lifetime bound to an owner node.
|
Package sequence runs a list of timeline steps in order, with lifetime bound to an owner node. |
|
Package settings provides typed user-preferences singletons backed by JSON on disk under user://.
|
Package settings provides typed user-preferences singletons backed by JSON on disk under user://. |
|
Package shaders provides a ShaderMaterial.Instance with the shader pipeline written within Go.
|
Package shaders provides a ShaderMaterial.Instance with the shader pipeline written within Go. |
|
bool
Package bool provides GPU operations on boolean values.
|
Package bool provides GPU operations on boolean values. |
|
bvec2
Pacakge bvec2 provides GPU operations on two-component boolean vectors.
|
Pacakge bvec2 provides GPU operations on two-component boolean vectors. |
|
bvec3
Pacakge bvec3 provides GPU operations on three-component boolean vectors.
|
Pacakge bvec3 provides GPU operations on three-component boolean vectors. |
|
bvec4
Pacakge bvec4 provides GPU operations on four-component boolean vectors.
|
Pacakge bvec4 provides GPU operations on four-component boolean vectors. |
|
float
Package float provides GPU operations on floating-point values.
|
Package float provides GPU operations on floating-point values. |
|
int
Package int provides GPU operations on signed integer values.
|
Package int provides GPU operations on signed integer values. |
|
internal/builtins
command
builtins checks gdmaths and gdvalue packages for builtin class methods and reports any builtin methods that are missing from gd or any duplicates.
|
builtins checks gdmaths and gdvalue packages for builtin class methods and reports any builtin methods that are missing from gd or any duplicates. |
|
ivec2
Package ivec2 provides GPU operations on two-component signed integer vectors.
|
Package ivec2 provides GPU operations on two-component signed integer vectors. |
|
ivec3
Package ivec3 provides GPU operations on three-component signed integer vectors.
|
Package ivec3 provides GPU operations on three-component signed integer vectors. |
|
ivec4
Package ivec4 provides GPU operations on four-component signed integer vectors.
|
Package ivec4 provides GPU operations on four-component signed integer vectors. |
|
mat2
Package mat2 provides GPU operations on 2x2 matrices.
|
Package mat2 provides GPU operations on 2x2 matrices. |
|
mat3
Package mat3 provides GPU operations on 3x3 matrices.
|
Package mat3 provides GPU operations on 3x3 matrices. |
|
mat4
Package mat4 provides GPU operations on 4x4 matrices.
|
Package mat4 provides GPU operations on 4x4 matrices. |
|
pipeline/CanvasItem
Package CanvasItem provides a canvas item shader pipeline used for shading 2D objects.
|
Package CanvasItem provides a canvas item shader pipeline used for shading 2D objects. |
|
pipeline/Fog
Package Fog provides a fog shader pipeline used for shading 3D objects.
|
Package Fog provides a fog shader pipeline used for shading 3D objects. |
|
pipeline/Particle
Package Particle provides a particle shader pipeline used for shading 2D and 3D particles.
|
Package Particle provides a particle shader pipeline used for shading 2D and 3D particles. |
|
pipeline/Sky
Package Sky provides a sky shader pipeline used for shading 3D objects.
|
Package Sky provides a sky shader pipeline used for shading 3D objects. |
|
pipeline/Spatial
Package Spatial provides the spatial shader pipeline used for shading 3D objects.
|
Package Spatial provides the spatial shader pipeline used for shading 3D objects. |
|
rgb
Package rgb provides GPU operations on three-component floating-point colors.
|
Package rgb provides GPU operations on three-component floating-point colors. |
|
rgba
Package rgba provides a constructor for vec4.RGBA values.
|
Package rgba provides a constructor for vec4.RGBA values. |
|
uint
Package uint provides GPU operations on unsigned integer values.
|
Package uint provides GPU operations on unsigned integer values. |
|
uvec2
Package uvec2 provides GPU operations on two-component unsigned integer vectors.
|
Package uvec2 provides GPU operations on two-component unsigned integer vectors. |
|
uvec3
Package uvec3 provides GPU operations on three-component unsigned integer vectors.
|
Package uvec3 provides GPU operations on three-component unsigned integer vectors. |
|
uvec4
Package uvec4 provides GPU operations on four-component unsigned integer vectors.
|
Package uvec4 provides GPU operations on four-component unsigned integer vectors. |
|
vec2
Package vec2 provides GPU operations on two-component floating-point vectors.
|
Package vec2 provides GPU operations on two-component floating-point vectors. |
|
vec3
Package vec3 provides GPU operations on three-component floating-point vectors.
|
Package vec3 provides GPU operations on three-component floating-point vectors. |
|
vec4
Package vec4 provides GPU operations on four-component floating-point vectors.
|
Package vec4 provides GPU operations on four-component floating-point vectors. |
|
Package signals provides owner-bound signal connection helpers — the recommended way to attach Go callbacks to Godot signals.
|
Package signals provides owner-bound signal connection helpers — the recommended way to attach Go callbacks to Godot signals. |
|
Package spawn provides the polymorphic Add verb — one call to parent any of {Go component pointer, PackedScene.Instance, "res://..."} into a node and optionally position it.
|
Package spawn provides the polymorphic Add verb — one call to parent any of {Go component pointer, PackedScene.Instance, "res://..."} into a node and optionally position it. |
|
Package startup provides a runtime for connecting to the graphics engine.
|
Package startup provides a runtime for connecting to the graphics engine. |
|
internal/cmd/generate
command
|
|
|
Package stat provides a reactive numeric value: hold a Stat instead of a bare int/float when you want UI to update automatically on change.
|
Package stat provides a reactive numeric value: hold a Stat instead of a bare int/float when you want UI to update automatically on change. |
|
Package strict provides the AssertStrict runtime check for components that demand scene-authored children (via ggd:"strict" struct tags), catching missing-node bugs at startup instead of at use.
|
Package strict provides the AssertStrict runtime check for components that demand scene-authored children (via ggd:"strict" struct tags), catching missing-node bugs at startup instead of at use. |
|
Package timing provides owner-bound delays and recurring timers, plus the OnMainThread bridge for cross-thread node work.
|
Package timing provides owner-bound delays and recurring timers, plus the OnMainThread bridge for cross-thread node work. |
|
Package tree provides type-filtered scene-tree lookups: walk a parent's children, descendants, or ancestors and return only nodes that cast to a specific type.
|
Package tree provides type-filtered scene-tree lookups: walk a parent's children, descendants, or ancestors and return only nodes that cast to a specific type. |
|
Package ui provides a modal screen stack, transient toasts, and a focus helper.
|
Package ui provides a modal screen stack, transient toasts, and a focus helper. |
|
AABB
Package AABB provides a 3D axis-aligned bounding box.
|
Package AABB provides a 3D axis-aligned bounding box. |
|
Array
Package Array provides a data structure that holds a sequence of elements.
|
Package Array provides a data structure that holds a sequence of elements. |
|
Basis
Package Basis is a 3×3 matrix for representing 3D rotation and scale.
|
Package Basis is a 3×3 matrix for representing 3D rotation and scale. |
|
Callable
Package Callable provides generic methods for working with callable functions.
|
Package Callable provides generic methods for working with callable functions. |
|
Color
Package Color provides a color represented in RGBA format.
|
Package Color provides a color represented in RGBA format. |
|
Dictionary
Package Dictionary provides a data structure that holds key-value pairs.
|
Package Dictionary provides a data structure that holds key-value pairs. |
|
Enum
Package Enum provides a way to define enums.
|
Package Enum provides a way to define enums. |
|
Error
Package Error provides generic or codes for use as error return values that do not allocate.
|
Package Error provides generic or codes for use as error return values that do not allocate. |
|
Euler
Package Euler provides euler angle types for representing 3D rotations.
|
Package Euler provides euler angle types for representing 3D rotations. |
|
Float
Package Float provides a generic math library for floating-point numbers.
|
Package Float provides a generic math library for floating-point numbers. |
|
Int
Package Int provides generic methods for working with integers.
|
Package Int provides generic methods for working with integers. |
|
Object
Package Object provides methods for working with Object instances.
|
Package Object provides methods for working with Object instances. |
|
Packed
Package Packed contains specific Array types that are more efficient and convenient to work with.
|
Package Packed contains specific Array types that are more efficient and convenient to work with. |
|
Path
Package path provides methods and a type for working with slash-separated paths with selectors.
|
Package path provides methods and a type for working with slash-separated paths with selectors. |
|
Plane
Package Plane provides a plane in Hessian normal form.
|
Package Plane provides a plane in Hessian normal form. |
|
Projection
Package Projection provides a 4×4 matrix for 3D projective transformations.
|
Package Projection provides a 4×4 matrix for 3D projective transformations. |
|
Quaternion
Package Quaternion provides a unit quaternion used for representing 3D rotations.
|
Package Quaternion provides a unit quaternion used for representing 3D rotations. |
|
Rect2
Package Rect2 provides a 2D axis-aligned bounding box using floating-point coordinates.
|
Package Rect2 provides a 2D axis-aligned bounding box using floating-point coordinates. |
|
Rect2i
Package Rect2i provides a 2D axis-aligned bounding box using integer coordinates.
|
Package Rect2i provides a 2D axis-aligned bounding box using integer coordinates. |
|
Signal
Package Signal provides a type representing an event stream or pub/sub message queue.
|
Package Signal provides a type representing an event stream or pub/sub message queue. |
|
String
Package String provides a generic string functions.
|
Package String provides a generic string functions. |
|
StringName
Package StringName provides unique strings.
|
Package StringName provides unique strings. |
|
Transform2D
Package Transform2D provides a 2×3 matrix representing a 2D transformation.
|
Package Transform2D provides a 2×3 matrix representing a 2D transformation. |
|
Transform3D
Package Transform3D a 3×4 matrix representing a 3D transformation.
|
Package Transform3D a 3×4 matrix representing a 3D transformation. |
|
Vector2
Package Vector2 provides a 2D vector using floating-point coordinates.
|
Package Vector2 provides a 2D vector using floating-point coordinates. |
|
Vector2i
Package Vector2i provides a 2D vector using integer coordinates.
|
Package Vector2i provides a 2D vector using integer coordinates. |
|
Vector3
Package Vector3 provides a 3D vector using floating-point coordinates.
|
Package Vector3 provides a 3D vector using floating-point coordinates. |
|
Vector3i
Package Vector3 provides a 3D vector using integer coordinates.
|
Package Vector3 provides a 3D vector using integer coordinates. |
|
Vector4
Package Vector4 provides a 4D vector using integer coordinates.
|
Package Vector4 provides a 4D vector using integer coordinates. |
|
Vector4i
Package Vector4i provides a 4D vector using integer coordinates.
|
Package Vector4i provides a 4D vector using integer coordinates. |
|
Package visual provides prototype-grade attachments: collision shape plus colored rectangle/triangle visuals for runtime-spawned bodies that don't yet have real art.
|
Package visual provides prototype-grade attachments: collision shape plus colored rectangle/triangle visuals for runtime-spawned bodies that don't yet have real art. |
|
Package window exposes the main-window controls that user settings touch: fullscreen toggle, vsync mode.
|
Package window exposes the main-window controls that user settings touch: fullscreen toggle, vsync mode. |