Capabilities

Quick overview of the various libraries that are a part of Gail.
Analytics – Generic interface for interacting with various Analytics systems.
Audio – Loading audio files (drivers : flac, pcm, modplug (mods), ogg vorbis)
AudioSystem – Playing audio sounds (drivers: alsa, audioqueue, audiounit, jack, openal, opensles, pulseaudio, waveout)
Catalyst – Catalyst modules : provides a cross platform build system.
Config – Simple config INI format – deprecated / unused. Replaced by Gail::Core::Serializer, and/or Gail::XML.
Console – Flexible console outputting system. Can output any gail object. (drivers: android logging, stdout (console), file, network)
Core – Core library : provides basic support for everything else (think Foundation). Retain/Release model, driver system basics, singletons, and other core implementation stuff for Gail.
Crash – Provides crash drivers for platforms allowing easy emailing of crash reports, and custom information. (drivers: android, iOS, Linux, MacOSX, Win32)
DebugInterface – Remote interface for debugging stuff, setting variables remotely (must be manually added), remote FPS, console output, memory usage, etc (not sure how well it works atm, but should still be)
Documentation – Provides documentation for Gail. Doxygen generation files, etc. Can easily import into IDEs (kdevelop, msvc, xcode)
Examples – Test examples for Gail
Font – Loading fonts into Gail. (drivers: truetype).
GuiNG – Basic 2D gui support. Images, text, sprites,  colors. Supports grouping (ImageGroup, TextGroup)
Image – Image loading. (drivers: gif, jpeg, ninepatch, png, pvr (on iOS), webp)
iPhone – Provides iPhone specific features. All features are faked on other devices for testing.
Joystick – Provides common joystick/accelerometer support. (drivers: DirectInput8, iPhone, Linux,MacOSX)
Model – Loading 3D models (driver: anything supported by assimp, rcc3ddat)
Network – Basic networking support for Gail. (drivers: bsd sockets)
Particle – Simple particle system for Gail. Renderable using GuiNG.
RendererNG – Rendering system for gail : abstract to support multiple platforms. (drivers: DirectX (in development), OpenGL)
Resource – Support for Gail resource management : allows abstracting resource type and gives a single location for looking up resources (see VFS).
Sprite – Loading sprites and spritesheets (custom formats). Handles animating sprites too.
SQL – Abstract SQL support. (drivers: sqllite, oracle).
Test – Provides UnitTesting for gail classes and the ability to easily run test suites.
Thread – Multi-threading support for Gail. (drivers: pthreads, winthreads)
Tools- Tools that provide support for gail stuff. Examples below:
  • GailInfo – Program that lists all information Gail knows about a system.
  • GailResourceCompiler – Handles compiling resources.
  • ImageViewer – Views images using Gail.
  • ModelViewerNG – Views models using Gail
  • PhotoshopWebSlicesToUI – Exports a set of HTML slices generated from Photoshop into a .gailui file, allowing easy importing into a program as a UI.
  • Playground – Example program with lots of modules.
  • SpriteSheetTexturePacker – Packs a set of images into a .spritesheet which is imported easily into Gail.
  • SQLTool – Simple commandline tool using Gail::SQL. Can be used to connect to a database (oracle, etc) or to a local file (sqlite) and run SQL commands.
  • TTFToPNG – Converts a TTF font into a set of pngs to be imported as a spritesheet into Gail. Also writes font metric information.
  • UIViewer – Simple tool to view UI files.

Trophy – Provides support for handling achievements and trophys (drivers: file, planned support for openfeint and gamecenter)
UI – Provides support for easily loading UI files, loading entire UIs with a single line.
VFS – Virtual File System : abstracts using files and sources (directories, zip files, android resources, etc) allowing a simple API to all the various types. Used heavily with Resource.
Window – Provides a window and basic input (keyboard/mouse) in a cross platform manner. Drivers : BeOS, Cocoa, EGL, Qt (as an embedded QGLWidget), UIKit, WinAPI, Xlib
WorldNG – 3D system for Gail (incomplete)
XML – Provides simple XML support using libxml2. Also has easy serialization for objects (Core also provides)
ZeroConf – Provides Bonjour/Zeroconf capabilities on systems that support it (drivers: avahi (linux), DNSSD (macosx, iphone)).