Resolution independent 2D graphics engine
About

Quad-ren is a resolution independent 2D graphics engine which focuses on minimalism and follows the suckless philosophy . The applications created with Quad-ren are always resizeable, either running in a window or full screen, allowing them to work flawlessly with a wide range of screen resolutions as well as with tiling window managers.

Quad-ren utilises modern graphics hardware provide RGBA bitmap drawing capability's with high performance rotation and scaling. It is written in and usable from the C++ programming language with a simple object oriented API and a clean, hackable code base.

If you are new to the graphics engine and want a general overview, please take a look at the tutorials section

Quad-Ren 0.5 released

Quad-ren version 0.5 has now bean released. To begin with, the whole API has bean moved into the 'qr' name space, which unfortunately causes a break of backwards compatibility again. Also the build system has bean changed from GNU Autotools to CMake, please uninstall version 0.4 using the make uninstall target or delete /usr/lib/libquad-ren.* and /usr/include/quad-ren before installing 0.5 to avoid problems.

A scene graph has bean added, previously all scene nodes were a child of the resource manager, now they can also be children of other scene nodes allowing a scene graph to be built. Children of other scene nodes are transformed relative to there parents.

Along with the scene graph, scene graph variables have also bean introduced. These allow data to be moved between scene nodes without introducing globals. These variables are scoped lexically within the context of the scene graph. This has allowed animator and event receiver objects to be separated into two different classes increasing code modularity.

To demonstrate the usage of Quad-ren in the development of actual games, another example program has bean added. This consists of an implementation of the classic 'Pong' game. Along with this game, a new scene node has bean added, qr::circle.

This release also fixes anti aliasing bug which caused crashes on Intel graphics cards. Anti-aliasing has now bean exported into the API and is automatically disabled when it is not supported by the hardware.

Website Redesign And Rewrite

During the period of seaming complete inactivity on this project over the past few months, I have bean busy recoding this website from scratch to make it easier to manage. The majority of the changes are in the back-end and not visible. However there are also some more obvious changes, like the re-factored, scalable design and the restructured examples section.

Quad-Ren 0.4 Released

This version adds a number of features, one being an event system, providing a cleaner method of reading user input. It also adds a new scene node, qr_line.

The example program has bean moved out of the main release into its own package, and 2 more examples have bean added, a simple "hello world" style program and an example of the usage of the event system.

There have also bean a number of bug fixes, most notably to the PNG loader, which will no longer load images without an alpha channel and are not a power of two.

As an experiment, I am providing a pre-compiled Debian package for i386 and amd64 and an Arch build script as well as the source code. If you have problems with ether of these please report a bug on the Quad-Ren mailing list, see the community section.

Quad-Ren 0.3 Released

Quad-Ren version 0.3 is now available.

The primary highlight of this release is that the API is now completely documented, see the API Documentation section. There have also bean some minor feature additions such as an FPS counter. Also, the QRDD file reader/writer and math functions have bean moved into the qrdd_file_handler and qr_math objects, making the API 100% object oriented.

Quad-Ren 0.2 Released

The second release of the Quad-Ren graphics engine is now available. Massive improvements over the previous version have bean made, though unfortunately this required braking API backwards compatibility.

One of the main additions is a proper global resource manager, this means that you no longer have to manage the memory of sprites and quads manually.

The qr_quad class has bean replaced with qr_scene_node, This is a virtual class which can store 2D triangle meshes. Currently the only descended class is qr_quad, an emulation of the old quad class. In the future this change will alow the engine to be more flexible.

The renderer has also bean re-factored, all scene nodes using the same texture are now drawn together, this decreases memory bandwidth, and makes the renderer more efficient.

General usage of the new API is shown in the new example program. The rest of the API documentation will be updated as and when I have time.