CPPGPGPU Library - Main Page


Main Page | General Use | Reference | Examples Info | Get/Download CPPGPGPU | SF.net Page



CPPGPGPU is a collection of classes and function that provide high level access to some basic and advanced OpenGL functionality. Unlike many libraries, CPPGPGPU is designed to be more of a copy-and-paste approach to adding functionality to your program. You are encouraged to simply compile in any of the applicable files into your project and liberally make changes. Since CPPGPGPU is distributed under the MIT/x11 license, it is possible to utilize it in software under a wide range of licenses, from GNU GPL to closed proprietary applications. Take note, however, that you must obey the licenses that your GLUT and GL build come under.

CPPGPGPU focuses on three points.

  1. Provide a easy-to-use wrapper for GLUT.
  2. Provide wrappers for a OpenGL functionality pertaining to GPGPU.
  3. Attempt to provide comprehensive scene graph.
While CPPGPGPU can be used in finished projects, it is also well suited to being more of a learning tool, allowing someone to get a grasp of what's going on in a series of brief examples.

CPPGPGPU has been throughly tested on Linux, OSX and Windows. In Linux and OSX, it is GCC4 compatible and makes extensive use of GNU Make instead of requiring any platform-specific IDE for the examples. In Windows, it has been tested in VC6, VC .NET 2003, VC .NET 2005, and Bloodshed Dev-C++. The core library has been tested on various NVIDIA and ATI cards. There is very little functionality available for Intel based video cards. Functionality on ATI cards vary greatly but is generally tested on ATI X1600 video cards running on OSX. All of the examples currently work on GeForce 6600 or better NVIDIA video cards (with current drivers Dec 2007.)

Many of the examples are only found in the current SVN. Releases are made sparingly and only once all examples are mature. If you really want to get access to something that is not in the public download, you may use anonymous SVN to checkout the current version of CPPGPGPU.

WARNING: CPPGPGPU's definition is NOT set in stone. The header files and functionality may change routinely. DO NOT expect to be able to simply switch from version to version without tweaking your code.

WARNING: CPPGPGPU has not been extensively examined for correctness of code. There may be errors in it. DO NOT assume that this code is 100% correct. Second guess it, maybe submit a bug report if you think you've found something. The current release has a very low number for a good reason!

Acknowledgments: This project was originally based off of Dr. Marc Olano's GLUT Example. While it has been heavily changed and rewritten, credit for the layout of how GLUT is used in this application internally is attributed to him. GPPGPGPU forums and wiki were a helpful resource when running into issues regarding unexpected results when using OpenGL code. Additionally, the OpenGL GLSL Quick Reference Guide came in very handy.


© 2005-2007 Charles Lohr, Joshua Allen, David Chapman. All material including documentation under the MIT/X11 license.