Introduction to GLUT and FLTK
This assignment is a simple introduction to the use of the GL Utility ToolKit (GLUT) and the Fast/Lite ToolKit
(FLTK, pronounced "Full-Tick"). The idea is to get you accustomed to the program structure and libraries you will
use for the rest of your
assignments in this class. It should be fairly uninvolved work-wise, but may involve some tricky compiler/library
voodoo to get working perfectly, especially if you are trying to install it on your home system. If you run into any
problems, please don't hesitate to e-mail the TA -- he is your friend. It
is critical you get
this framework to work and understand it fairly well, as all remaining assignments will be based upon it.
You will need to download the source and project files here.
The assignment consists of two (or three) parts:
Part 0: Installing GLUT and FLTK
(Only applicable if you are installing on your own machine. This should be already done on all the machines in
First, you will need to acquire the archives for GLUT (available here) and FLTK
(available here). Each should contain a directory of libraries (.lib files),
includes (.h files), and binaries (.exe or .dll files). Place the LIB and INCLUDE directories from the archives
somewhere in your build path (the default for Visual Studio .NET is "c:\program files\Microsoft Visual Studio
.NET\vc7"), and the DLLs in your executable path (one such location being "c:\windows\system32"). In the FLTK
archive, there is also a program called "Fluid.exe". This program allows you to edit and export the FLTK
configuration files, and so you should put it somewhere you can have easy access to.
Part 1: Basic GLUT
Once you have downloaded the project file for Assignment 0, open it up and select "Part 1" as your active project.
Open "part1.cpp" and read through the code. It is a very typical and straight-forward GLUT application, and should
be documented well enough for you to easily follow what it is doing at each part. Once you have finished reading
through it, and feel you have a good understanding of how it works, compile it and run the program.
Part 2: Basic FLTK
Now, select "Part 2" as your active project. This program is virtually the same as Part 1, except that now the GLUT
frame is embedded within a FLTK window manager object. The only real changes in source code are in the main function
(where the CFLTKGui object is created) and in the includes (some of the constants have been moved to a new file
called "main.h"). Compile and run the program. Now, you should see a similar window as before, except that it is
embedded within a FLTK control panel. One button has been implemented; its job is to quit the program when pressed.
In the directory containing Part 2, there is an executable named "fluid.exe". Run it, and open the file named
"gui.fl". This file is the FLUID definition file for this GUI interface. FLUID allows you to visually define this
interface file, and then export it to source code to be included in the project. Once this source is exported, the
project is simply recompiled and the changes take effect.
Look through the various items and options, and familiarize yourself with the tools available. You can see details
on any item in the code view by simply double-clicking on them. Pay special attention to how the "Quit" button is
Your task for part 2 is to implement buttons that toggle the lighting, wireframe, and animation
just as implemented in Part 1. You may use the already implemented Quit button as a model, though you are
encouraged to experiment with the framework and implement these functions using any other logical
widgets (radio buttons or check boxes), or to extend the program (such as adding a slider to control the
rotation speed) as well. All of these tools will be required in later projects.