modulepackage
2.9.0-alpha.4
Repository: https://github.com/hajimehoshi/ebiten.git
Documentation: pkg.go.dev
# README
Ebitengine (v2)
A dead simple 2D game engine for Go
Ebitengine (formerly known as Ebiten) is an open source game engine for the Go programming language. Ebitengine's simple API allows you to quickly and easily develop 2D games that can be deployed across multiple platforms.
Platforms
- Windows (No Cgo required!)
- macOS
- Linux
- FreeBSD
- Android
- iOS
- WebAssembly
- Nintendo Switch
- Xbox (Xbox support is limited and not available to everyone. Negotiations are currently underway to make it accessible to all.)
For installation on desktops, see the installation instruction.
Features
- 2D Graphics (Geometry and color transformation by matrices, Various composition modes, Offscreen rendering, Text rendering, Automatic batches, Automatic texture atlas, Custom shaders)
- Input (Mouse, Keyboard, Gamepads, Touches)
- Audio (Ogg/Vorbis, MP3, WAV, PCM)
Packages
Community
- Discord
#ebitengine
channel in Gophers Slack- GitHub Discussion
r/ebitengine
in Reddit
License
Ebitengine is licensed under Apache license version 2.0. See LICENSE file.
The Ebitengine logo by Hajime Hoshi is licensed under the Creative Commons Attribution 4.0.
GLFW
Copyright (c) 2002-2006 Marcus Geelnard
Copyright (c) 2006-2019 Camilla Löwy
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would
be appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not
be misrepresented as being the original software.
3. This notice may not be removed or altered from any source
distribution.
Go
https://cs.opensource.google/go/go
Copyright (c) 2009 The Go Authors. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the
distribution.
* Neither the name of Google Inc. nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
go-gl/gl
The MIT License (MIT)
Copyright (c) 2014 Eric Woroshow
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
go-gl/glfw
Copyright (c) 2012 The glfw3-go Authors. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the
distribution.
* Neither the name of Google Inc. nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# Packages
Package audio provides audio players.
Package ebitenutil provides utility functions for Ebitengine.
Package inpututil provides utility functions of input like keyboard or mouse.
Package mobile provides functions for mobile platforms (Android and iOS).
Package text offers functions to draw texts on an Ebitengine's image.
Package vector provides functions for vector graphics rendering.
# Functions
ActualFPS returns the current number of FPS (frames per second), that represents how many swapping buffer happens per second.
ActualTPS returns the current TPS (ticks per second), that represents how many times Update function is called in a second.
AppendGamepadIDs appends available gamepad IDs to gamepadIDs, and returns the extended buffer.
AppendInputChars appends "printable" runes, read from the keyboard at the time Update is called, to runes, and returns the extended buffer.
AppendMonitors returns the monitors reported by the system.
AppendTouchIDs appends the current touch states to touches, and returns the extended buffer.
CurrentFPS returns the current number of FPS (frames per second), that represents how many swapping buffer happens per second.
CurrentTPS returns the current TPS (ticks per second), that represents how many times Update function is called in a second.
CursorMode returns the current cursor mode.
CursorPosition returns a position of a mouse cursor relative to the game screen (window).
CursorShape returns the current cursor shape.
DefaultDrawFinalScreen is the default implementation of [FinalScreenDrawer.DrawFinalScreen], used when a [Game] doesn't implement [FinalScreenDrawer].
DeviceScaleFactor returns a device scale factor value of the current monitor which the window belongs to.
DroppedFiles returns a virtual file system that includes only dropped files and/or directories at its root directory, at the time Update is called.
FPSMode returns the current FPS mode.
GamepadAxis returns a float value [-1.0 - 1.0] of the given gamepad (id)'s axis (axis).
GamepadAxisCount returns the number of axes of the gamepad (id).
GamepadAxisNum returns the number of axes of the gamepad (id).
GamepadAxisValue returns a float value [-1.0 - 1.0] of the given gamepad (id)'s axis (axis).
GamepadButtonCount returns the number of the buttons of the given gamepad (id).
GamepadButtonNum returns the number of the buttons of the given gamepad (id).
GamepadIDs returns a slice indicating available gamepad IDs.
GamepadName returns a string with the name.
GamepadSDLID returns a string with the GUID generated in the same way as SDL.
InputChars return "printable" runes read from the keyboard at the time Update is called.
IsFocused returns a boolean value indicating whether the game is in focus or in the foreground.
IsFullscreen reports whether the current mode is fullscreen or not.
IsGamepadButtonPressed reports whether the given button of the gamepad (id) is pressed or not.
IsKeyPressed returns a boolean indicating whether key is pressed.
IsMouseButtonPressed returns a boolean indicating whether mouseButton is pressed.
IsRunnableOnUnfocused returns a boolean value indicating whether the game runs even in background.
IsScreenClearedEveryFrame returns true if the frame isn't cleared at the beginning.
IsScreenFilterEnabled returns true if Ebitengine's "screen" filter is enabled.
IsScreenTransparent reports whether the window is transparent.
IsStandardGamepadAxisAvailable reports whether the standard gamepad axis is available on the gamepad (id).
IsStandardGamepadButtonAvailable reports whether the standard gamepad button is available on the gamepad (id).
IsStandardGamepadButtonPressed reports whether the given gamepad (id)'s standard gamepad button (button) is pressed.
IsStandardGamepadLayoutAvailable reports whether the gamepad (id) has a standard gamepad layout mapping.
IsVsyncEnabled returns a boolean value indicating whether the game uses the display's vsync.
IsWindowBeingClosed returns true when the user is trying to close the window on desktops.
IsWindowClosingHandled reports whether the window closing is handled or not on desktops by SetWindowClosingHandled.
IsWindowDecorated reports whether the window is decorated.
IsWindowFloating reports whether the window is always shown above all the other windows.
IsWindowMaximized reports whether the window is maximized or not.
IsWindowMinimized reports whether the window is minimized or not.
IsWindowMousePassthrough reports whether a mouse cursor passthroughs the window or not on desktops.
IsWindowResizable reports whether the window is resizable by the user's dragging on desktops.
KeyName returns a key name for the current keyboard layout.
MaximizeWindow maximizes the window.
MaxTPS returns the current maximum TPS.
MinimizeWindow minimizes the window.
Monitor returns the current monitor.
NewImage returns an empty image.
NewImageFromImage creates a new image with the given image (source).
NewImageFromImageWithOptions creates a new image with the given image (source) with the given options.
NewImageWithOptions returns an empty image with the given bounds and the options.
NewShader compiles a shader program in the shading language Kage, and returns the result.
ReadDebugInfo writes debug info (e.g.
RequestAttention requests user attention to the current window and/or the current application.
RestoreWindow restores the window from its maximized or minimized state.
RunGame starts the main loop and runs the game.
RunGameWithOptions starts the main loop and runs the game with the specified options.
ScheduleFrame schedules a next frame when the current FPS mode is FPSModeVsyncOffMinimum.
ScreenSizeInFullscreen returns the size in device-independent pixels when the game is fullscreen.
SetCursorMode sets the render and capture mode of the mouse cursor.
SetCursorShape sets the cursor shape.
SetFPSMode sets the FPS mode.
SetFullscreen changes the current mode to fullscreen or not on desktops and browsers.
SetInitFocused sets whether the application is focused on show.
SetMaxTPS sets the maximum TPS (ticks per second), that represents how many times updating function is called per second.
SetMonitor sets the monitor that the window should be on.
SetRunnableOnUnfocused sets the state if the game runs even in background.
SetScreenClearedEveryFrame enables or disables the clearing of the screen at the beginning of each frame.
SetScreenFilterEnabled enables/disables the use of the "screen" filter Ebitengine uses.
SetScreenTransparent sets the state if the window is transparent.
SetTPS sets the maximum TPS (ticks per second), that represents how many times updating function is called per second.
SetVsyncEnabled sets a boolean value indicating whether the game uses the display's vsync.
SetWindowClosingHandled sets whether the window closing is handled or not on desktops.
SetWindowDecorated sets the state if the window is decorated.
SetWindowFloating sets the state whether the window is always shown above all the other windows.
SetWindowIcon sets the icon of the game window.
SetWindowMousePassthrough sets whether a mouse cursor passthroughs the window or not on desktops.
SetWindowPosition sets the window position.
SetWindowResizable sets whether the window is resizable by the user's dragging on desktops.
SetWindowResizingMode sets the mode in which a user resizes the window.
SetWindowSize sets the window size on desktops.
SetWindowSizeLimits sets the limitation of the window size on desktops.
SetWindowTitle sets the title of the window.
StandardGamepadAxisValue returns a float value [-1.0 - 1.0] of the given gamepad (id)'s standard axis (axis).
StandardGamepadButtonValue returns a float value [0.0 - 1.0] of the given gamepad (id)'s standard button (button).
TouchIDs returns the current touch states.
TouchPosition returns the position for the touch of the specified ID.
TPS returns the current maximum TPS.
UpdateStandardGamepadLayoutMappings parses the specified string mappings in SDL_GameControllerDB format and updates the gamepad layout definitions.
Vibrate vibrates the device with the specified options.
VibrateGamepad vibrates the specified gamepad with the specified options.
Wheel returns x and y offsets of the mouse wheel or touchpad scroll.
WindowPosition returns the window position.
WindowResizingMode returns the current mode in which a user resizes the window.
WindowSize returns the window size on desktops.
WindowSizeLimits returns the limitation of the window size on desktops.
# Constants
AddressClampToZero means that out-of-range texture coordinates return 0 (transparent).
AddressRepeat means that texture coordinates wrap to the other side of the texture.
AddressUnsafe means there is no guarantee when the texture coordinates are out of range.
BlendFactorDefault is the default factor value.
BlendFactorDestinationAlpha is a factor:
(destination alpha).
BlendFactorDestinationColor is a factor:
(destination RGBA).
BlendFactorOne is a factor:
1.
BlendFactorOneMinusDestinationAlpha is a factor:
1 - (destination alpha).
BlendFactorOneMinusDestinationColor is a factor:
1 - (destination RGBA).
BlendFactorOneMinusSourceAlpha is a factor:
1 - (source alpha).
BlendFactorOneMinusSourceColor is a factor:
1 - (source color).
BlendFactorSourceAlpha is a factor:
(source alpha).
BlendFactorSourceColor is a factor:
(source RGBA).
BlendFactorZero is a factor:
0.
BlendOperationAdd represents adding the source and destination color.
BlendOperationMax represents a maximum function for the source and destination color.
BlendOperationMin represents a minimum function for the source and destination color.
BlendOperationReverseSubtract represents subtracting the source and destination color in a reversed order.
BlendOperationSubtract represents subtracting the source and destination color.
ColorMDim is the dimension of a ColorM.
ColorScaleModePremultipliedAlpha indicates color scales in vertices are premultiplied-alpha encoded color multiplier.
ColorScaleModeStraightAlpha indicates color scales in vertices are straight-alpha encoded color multiplier.
ColorSpaceDefault represents the default color space.
ColorSpaceDisplayP3 represents the Display P3 color space (https://en.wikipedia.org/wiki/DCI-P3).
ColorSpaceSRGB represents the sRGB color space (https://en.wikipedia.org/wiki/SRGB).
Deprecated: as of v2.5.
Deprecated: as of v2.5.
CompositeModeCustom indicates to refer Blend.
Deprecated: as of v2.5.
Deprecated: as of v2.5.
Deprecated: as of v2.5.
Deprecated: as of v2.5.
Deprecated: as of v2.5.
Deprecated: as of v2.5.
Deprecated: as of v2.5.
Deprecated: as of v2.5.
Deprecated: as of v2.5.
Deprecated: as of v2.5.
Deprecated: as of v2.5.
Deprecated: as of v2.5.
CursorModeTypes.
CursorModeTypes.
CursorModeTypes.
CursorShapeTypes.
CursorShapeTypes.
CursorShapeTypes.
CursorShapeTypes.
CursorShapeTypes.
CursorShapeTypes.
CursorShapeTypes.
CursorShapeTypes.
CursorShapeTypes.
CursorShapeTypes.
DefaultTPS represents a default ticks per second, that represents how many times game updating happens in a second.
EvenOdd means that triangles are rendered based on the even-odd rule.
FillAll indicates all the triangles are rendered regardless of overlaps.
FillRuleEvenOdd means that triangles are rendered based on the even-odd rule.
FillRuleFillAll indicates all the triangles are rendered regardless of overlaps.
FillRuleNonZero means that triangles are rendered based on the non-zero rule.
FilterLinear represents linear filter.
FilterNearest represents nearest (crisp-edged) filter.
FilterPixelated represents a pixelated filter.
FPSModeVsyncOffMaximum indicates that the game doesn't sync with vsync, and the game is updated whenever possible.
FPSModeVsyncOffMinimum indicates that the game doesn't sync with vsync, and the game is updated only when necessary.
FPSModeVsyncOn indicates that the game tries to sync the display's refresh rate.
GamepadButtons.
GamepadButtons.
GamepadButtons.
GamepadButtons.
GamepadButtons.
GamepadButtons.
GamepadButtons.
GamepadButtons.
GamepadButtons.
GamepadButtons.
GamepadButtons.
GamepadButtons.
GamepadButtons.
GamepadButtons.
GamepadButtons.
GamepadButtons.
GamepadButtons.
GamepadButtons.
GamepadButtons.
GamepadButtons.
GamepadButtons.
GamepadButtons.
GamepadButtons.
GamepadButtons.
GamepadButtons.
GamepadButtons.
GamepadButtons.
GamepadButtons.
GamepadButtons.
GamepadButtons.
GamepadButtons.
GamepadButtons.
GamepadButtons.
GeoMDim is a dimension of a GeoM.
GraphicsLibraryAuto represents the automatic choose of graphics library by Ebitengine.
GraphicsLibraryDirectX represents the graphics library Microsoft DirectX.
GraphicsLibraryMetal represents the graphics library Apple's Metal.
GraphicsLibraryOpenGL represents the graphics library OpenGL.
GraphicsLibraryMetal represents the graphics library PlayStation 5.
GraphicsLibraryUnknown represents the state at which graphics library cannot be determined, e.g.
Keys for backward compatibility.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
Keys.
MaxIndicesCount is the maximum number of indices for DrawTriangles and DrawTrianglesShader.
MaxIndicesNum is the maximum number of indices for DrawTriangles and DrawTrianglesShader.
MaxVertexCount is the maximum number of vertices for DrawTriangles and DrawTrianglesShader.
MaxVerticesCount is the maximum number of vertices for DrawTriangles and DrawTrianglesShader.
MouseButtons.
MouseButtons.
MouseButtons.
MouseButtons.
MouseButtons.
MouseButtons.
MouseButtons.
MouseButtons.
MouseButtons.
NonZero means that triangles are rendered based on the non-zero rule.
StandardGamepadAxes.
StandardGamepadAxes.
StandardGamepadAxes.
StandardGamepadAxes.
StandardGamepadAxes.
StandardGamepadButtons.
StandardGamepadButtons.
StandardGamepadButtons.
StandardGamepadButtons.
StandardGamepadButtons.
StandardGamepadButtons.
StandardGamepadButtons.
StandardGamepadButtons.
StandardGamepadButtons.
StandardGamepadButtons.
StandardGamepadButtons.
StandardGamepadButtons.
StandardGamepadButtons.
StandardGamepadButtons.
StandardGamepadButtons.
StandardGamepadButtons.
StandardGamepadButtons.
StandardGamepadButtons.
SyncWithFPS is a special TPS value that means TPS syncs with FPS.
UncappedTPS is a special TPS value that means TPS syncs with FPS.
WindowResizingModeDisabled indicates the mode to disallow resizing the window by a user.
WindowResizingModeEnabled indicates the mode to allow resizing the window by a user.
WindowResizingModeOnlyFullscreenEnabled indicates the mode to disallow resizing the window, but allow to make the window fullscreen by a user.
# Variables
BlendClear is a preset Blend for Porter Duff's 'clear'.
BlendCopy is a preset Blend for Porter Duff's 'copy'.
BlendDestination is a preset Blend for Porter Duff's 'destination'.
BlendDestinationAtop is a preset Blend for Porter Duff's 'destination-atop'.
BlendDestinationIn is a preset Blend for Porter Duff's 'destination-in'.
BlendDestinationOut is a preset Blend for Porter Duff's 'destination-out'.
BlendDestinationOver is a preset Blend for Porter Duff's 'destination-over'.
BlendLighter is a preset Blend for Porter Duff's 'lighter'.
BlendSourceAtop is a preset Blend for Porter Duff's 'source-atop'.
BlendSourceIn is a preset Blend for Porter Duff's 'source-in'.
BlendSourceOut is a preset Blend for Porter Duff's 'source-out'.
BlendSourceOver is a preset Blend for the regular alpha blending.
BlendXor is a preset Blend for Porter Duff's 'xor'.
Termination is a special error which indicates Game termination without error.
# Structs
Blend is a blending way of the source color and the destination color.
A ColorM represents a matrix to transform coloring when rendering an image.
ColorScale represents a scale of RGBA color.
DebugInfo is a struct to store debug info about the graphics.
DrawImageOptions represents options for DrawImage.
DrawRectShaderOptions represents options for DrawRectShader.
DrawTrianglesOptions represents options for DrawTriangles.
DrawTrianglesShaderOptions represents options for DrawTrianglesShader.
A GeoM represents a matrix to transform geometry when rendering an image.
Image represents a rectangle set of pixels.
NewImageFromImageOptions represents options for NewImageFromImage.
NewImageOptions represents options for NewImage.
RunGameOptions represents options for RunGameWithOptions.
Shader represents a compiled shader program.
Vertex represents a vertex passed to DrawTriangles.
VibrateGamepadOptions represents the options for gamepad vibration.
VibrateOptions represents the options for device vibration.
# Interfaces
FinalScreen represents the final screen image.
FinalScreenDrawer is an interface for a custom function to render the final screen.
Game defines necessary functions for a game.
LayoutFer is an interface for the float version of Game.Layout.
# Type aliases
Address represents a sampler address mode.
BlendFactor is a factor for source and destination color values.
BlendOperation is an operation for source and destination color values.
ColorScaleMode is the mode of color scales in vertices.
ColorSpace represents the color space of the screen.
CompositeMode represents Porter-Duff composition mode.
CursorModeType represents a render and coordinate mode of a mouse cursor.
CursorShapeType represents a shape of a mouse cursor.
FillRule is the rule whether an overlapped region is rendered with DrawTriangles(Shader).
Filter represents the type of texture filter to be used when an image is magnified or minified.
FPSModeType is a type of FPS modes.
GamepadAxisType represents a gamepad axis.
GamepadButton represents a gamepad button.
GamepadID represents a gamepad identifier.
GraphicsLibrary represents graphics libraries supported by the engine.
A Key represents a keyboard key.
MonitorType represents a monitor available to the system.
A MouseButton represents a mouse button.
StandardGamepadAxis represents a gamepad axis in the standard layout.
StandardGamepadButton represents a gamepad button in the standard layout.
TouchID represents a touch's identifier.
WindowResizingModeType represents a mode in which a user resizes the window.