Recent Changes - Search:



Staff Interface


edit SideBar

Logged in as:

IntroCG2009 / ProgrammingTools

Tools Used In Class


All the programs you write in this class will be in C++. There are three main reasons for this:

  • The graphics toolkit for this class, OpenGL, is intended for use with C, which is a subset of C++.
  • The interface toolkit for this class, FLTK, is written in C++, and must be used with C++.
  • There is no good alternative to OpenGL that works with another language. Direct3D is an alternative, but it only works with C++ and Windows.

For the projects in this course, you will not require most of the advanced features of C++, such as operator overloading, exception handling and templates. Such things may make some aspects of your programs cleaner or easier to write, but are probably not worth the time investment to learn about just for this class. You will need to know about classes, inheritance and memory management (new and delete).

Your projects for this class must run under Visual C++ on the machines in room RB-504.


FLTK is a user interface toolkit that provides things like buttons and menus. Most important for us, it also provides simple support for OpenGL windows. The documentation for FLTK is available off the FLTK home page.

FLTK is portable across Windows and UNIX, another very good thing about it. There is no reason for you not to do your development under UNIX if you wish, but make sure it also works under Visual C++ in room B240.


The source for LibTarga is available in tutorial session, should you wish to download it for home. You will need to build at least the debug multithreaded configuration (which may not be the default). Note also that the pathnames to get to the include files and libraries will be different than those used at school.

LibTarga was written by Alex Mohr.


The OpenGL libraries come with all recent incarnations of Windows. For UNIX based systems, machines intended for graphics generally have hardware OpenGL libraries for X windows. For generic UNIX machines (eg linux), there is a software implementation of OpenGL call MesaGL. Recent RedHat distributions include Mesa as an optional RPM. Other distributions no doubt do likewise. In principle, there is nothing to stop you developing under UNIX and doing a quick port at the end (everything has a UNIX version), but there will be no support for this. Finally, if you're a true hacker and want to modify your linux kernel and X libraries, and you have an nvidia based graphics chipset, you can obtain hardware OpenGL drivers. I use them and they're great. Recent linux distributions may include them already.

History - Print - Recent Changes - Search
Page last modified on October 01, 2009, at 05:20 AM EST