|
Gateware Libraries
R6.5A
Beta Build
|
Gateware Libraries supports four deployment types: Static Libraries, Implicit DLLs, Explicit DLLs, and Source code if needed.
See distributed zip file for more details.
The goal of this API is to provide efficient, cross-platform libraries that handle functionality common to games and apps and work on all major platforms (Mac, Linux, Windows). The interfaces are intended to be light-weight and easy to use so end-users (students) can easily integrate them into their own projects.
The GLog library is intended to provide a simple way to log information to a file. This functionality is most useful for implementing error logging. This library supports binary and text file output and also has options for concurrent logging to console. The GLog library makes heavy use of the GFile library to interface with platform specific file IO.
The GFile library is intended to provide a simple interface that can open, read from and write binary or UTF-8 encoded text to files on any major platform. GFile also has support for getting and setting a current working directory, as well as retrieving all file names from said directory.
The goal of the GInput library is to provide a multi-platform interface for accurately handling high-speed keyboard and mouse input. This type of raw input handling is useful for games that need to get real-time user input and react to it quickly. Users can also query the state of individual keys, as well as get mouse position data.
GBuffered input provides a similar function to GInput, but implements an event based system that is reacting to platform specific keyboard and mouse input events, instead of catching raw input. GBufferedInput is directly derived from GBroadcast, meaning it must have a Listener attached to it to function. This type of input is more useful in any situation where speed is not as important, like navigating menus and entering text into fields.
The purpose of GWindow is to create a window and handle it's properties. This library recieves events from the current platform's main event system, adjusts any existing windows accordingly, and broadcasts these events to any registered listeners. Users will have the ability to resize and reconfigure the window, as well as query any size information they may need.
GDirectX11Surface is a library that allows for the automated setup and initialization of a DirectX11 rendering context. Along with the context, this library can create and manage other DirectX11 resources (upon request) that are useful when performing 3D rendering.
GOpenGLSurfaceis a library that allows for the automated setup and initialization of an OpenGL rendering context. Along with the context, this library can enable different OpenGL functionality (upon request) that may be useful when working on a 3D project.
GAudio is intended to handle all music and sound. This library creates either a sound or music stream depending on the request. Once created, users will have control of the master volume, individual channel volumes, and can pause/play all sounds and music.
GMusic is designed specifically to handle music. Once initialized, users can control the output and functions of the current stream. This will allow the users the ability to manipulate the music without having any effect on other sounds.
GSound is designed specifically to handle sounds/sound effects. This library functions very similarly to GMusic. Users will have control of the output channels of the sound, the volume, and can pause/play the sound of their choice. As with GMusic, affecting sounds with this library should have no effect on music streams created with GMusic.
GQuaternion supplies a convenient set of quaternion functions and macros that can be useful when performing any calculations that may require quaternion math.
GVector supplies a convenient set of vector functions and macros that can be useful when performing any calculations that may require vector math.
GMatrix supplies a convenient set of matrix functions and macros that can be useful when performing any calculations that may require matrix math.
Each team that Gateware deploys to will designate one team member to be their Reporter. The Reporter will post bugs to the Gateware Underdog page on behalf of their team.