My favorites | Sign in
Project Home Downloads Wiki Issues Source
Project Information
Members
Featured
Downloads
Wiki pages
Links

PhoenixCore

0.3 Raven Release

Version 0.3 was released on July 29th, 2011. You can download it here or by clicking the link on the side.

You can browse the documentation online.

You can also Donate, if you're feeling charitable.

Changes

Raven has quite a lot of changes from Nightingale. It has many new features but not too many API changes.

New Features:

  • New Shader class that allows shaders to be loaded, compiled, linked, and used. Simple interface for setting uniforms.
  • ShaderGroupState for automatically attaching shaders to BatchRenderers
  • New RenderTarget class that handles FBOs, MRTs, and allows for automatically adjusting the viewport and can be attached to BatchRenderers.
  • Ability to prevent the BatchRenderer from dropping non-persistent geometry during draw()
  • GLEW Integrated
  • drawImmediately() method added to BatchRenderer
  • Per-geometry clipping
  • New BatchGeometryComposite that applies the Composite design pattern to geometries.
  • New Font (Droid Sans Mono)
  • Support for AngelCode's BMFont as the default text rendering. This includes multi-page support, kerning, alignment, and text dimensions support.
  • Resize behaviors and better control over what happens when the window is resized.
  • Color clearing can be enabled/disabled and the clear color can be set per BatchRenderer
  • getData() method added to Texture
  • BGRA support for lock() and unlock() in Texture
  • Various new Tests added
  • clear() method added to BatchGeometry
  • quit() method added RenderSystem to allow it to gracefully stop
  • adjust() method for Timers
  • Support for GLFW 2.7 and 2.7-lite

Removed Features:

  • Old-school bitmap fonts no longer directly supported

Bugfixes:

  • Custom WindowManagers can now be used without having to change any core code.
  • Triangle Strips and various other aggregate geometry types are now batched correctly.
  • Fixed bug where copied textured had the same width as height.
  • Copy constructor for Color was missing
  • Ability to get the current blending mode
  • Optional name for Textures loaded from memory
  • Automatic size fetching for Textures loaded from memory
  • Char callbacks not happening on key up
  • Mouse events are now separate from key events
  • Droppable throwing if it's already been dropped
  • Various const fixes, etc.

Screenshots

About

PhoenixCore is an experimental 2D rendering framework based on OpenGL and written in C++. It is a fairly abstract library for rendering 2D geometry. PhoenixCore's features include:

  • Setting up an OpenGL Context.
  • Processing user Input (Keyboard, Mouse).
  • Managing OpenGL Context (swapping buffers, etc).
  • Provides abstract math classes for Vectors and Matrices.
  • Provides interface to loading and manipulating Textures.
  • Provides methods to modify the View Port and Transformation Matrix.
  • Provides classes for representing geometric primitives.
  • Provides methods for drawing geometric primitives.
  • Provides abstract class for Color representation and manipulation.
  • Provides access to high-precision timers.
  • Provides high-level threaded resource management.
  • Implements an experimental automatic optimizing batch renderer.

Goals

Phoenix's main goal is to provide and abstract interface for drawing 2d geometry with OpenGL. Phoenix is very basic, and does not provide features such as physics, sound, collision, or even a high level sprite class (although it does provide the ability to add this in very easily ).

What Phoenix Is Not

Phoenix is not a complete library for game development. It does not provide many of the needed libraries for game development. However, Phoenix is a good base and integrates very well with other libraries such as OpenAL, Box2D, etc.

History

PhoenixCore started as a much broader library caled PhoenixGL that was eventually scaled back in order to provide a working framework with the limited resources we have. PhoenixGL was started in 2007 by Jon Wayne Parrott and Denzel Morris. The rewrite that became PhoenixCore was started by Jon Parrott in 2009.

Special Thanks

There are a couple of brave souls that made PhoenixCore possible, among these are:

  • Denzel Morris
  • Brian Labbe
  • Sven Bergström
  • Chris Parich

Powered by Google Project Hosting