/ion

Ion

Primary LanguageC++Apache License 2.0Apache-2.0

Ion is a portable suite of libraries and tools for building client applications,
especially graphical ones. It is small, fast, and robust, and is cross-platform
across many platforms and devices, including desktops, mobile devices, browsers,
and other embedded platforms.

Why Use Ion?
* Small: < 500k binary size on mobile platforms, often much smaller
* Powerful: Tools for faster productivity when developing applications
  * Robust, portable application infrastructure aids in:
  * Object lifetime management
  * Memory allocation
  * Application start-up and static instances
  * Threading
  * Run-time setting editing
  * Automatic performance instrumentation
  * More!
* Tools for graphics:
  * Analyze graphics scenes to find performance bottleneck
  * Trace all OpenGL calls and examine their arguments
  * Use scene resources in multiple contexts, automatically
  * Run-time graphics state introspection
  * Run-time shader editing: change your shaders and immediately see the results
* Fast graphics: Minimal overhead between your application and OpenGL / ES
* Tested: Well-tested and facilitates testing your application
  * ~100% test coverage
  * Black- and white-box tested, unit tests and integration tests
  * Mock implementation of OpenGL API allows direct renderer unit tests and
    validation
  * Integrated Remote: extensible API allows changing arbitrary application
    settings on-the-fly for faster development, testing, and debugging
* Cross-platform:
  * Desktop: Linux, Mac OSX, Windows (OpenGL)
  * Handheld: Android (ARM, x86 MIPS), iOS (ARM and x86), and their 64-bit
    variants
  * Browser: Emscripten/asm.js, NaCl / pNaCl
* Cross-functional
  * Used by many teams across Google, running on billions of devices through
    multiple Google products

NOTE: This is not an official Google product.