Adobe® Digital Editions software.This eBook requires the free
Before downloading this DRM-encrypted PDF, be sure to:
Also available in other formats.
Register your product to gain access to bonus material or receive a coupon.
The licensing of OpenGL to many leading computer companies, including Microsoft, has made it possible for graphics programmers to learn to write stunning 3D graphics programs using the industry graphics standard on the world's most popular operating system. And OpenGL Programming for Windows 95 and Windows NT is the key to the door of opportunity for those who see the tremendous potential for programmers who can produce high-quality 3D applications on these platforms.
Using numerous examples, Microsoft's Visual C++ programming platform, the C++ programming language, and the Microsoft Foundation Classes, Fosner starts with a generic C application that can be compiled from any 32-bit C compiler and, step by step, covers the basics of creating an OpenGL program:
Most important, you'll absorb this knowledge within the context of developing a Windows application that you can experiment with and actually use in your Windows programs. You will gain hands-on experience in designing, creating, programming, measuring, and optimizing a real OpenGL 3D animation program.
OpenGL for Windows Programmers.
Overview of Device Contexts, Rendering.
Contexts, and Pixel Format.
Pixel Format Structure.
Selecting and Examining a Pixel Format.
The WGL Context-Rendering Functions.
Methods for Creating an RC.
Fonts and OpenGL.
Advanced Miscellaneous Functions.
Creating a Simple OpenGL Program with the Windows CAPI.
Creating a Simple MFC C++ OpenGL Program.
What Does OpenGL Do?
Who Controls OpenGL?
How OpenGL Works.
How a Vertex Becomes a Pixel.
The glBegin()/glEnd() Wrappers.
OpenGL Command Notation.
OpenGL and DLLs.
OpenGL's Main Library.
OpenGL's Utility Library.
OpenGL's Auxiliary Library.
Specifying a Color.
Calculating Normal Vectors.
Clearing the Rendering Window.
Rotation and Translations.
OpenGL's Modelview Matrix.
The Components of the Modelview Matrix.
Manipulating the Matrix Directly.
Viewport and Projection Transformations.
Architecture of the Model-View-Controller.
Building the OpenGL View Class Framework.
Customizing the View for OpenGL.
Using the CopenGLView Class.
Caching OpenGL Commands.
Creating a Display List.
Recording a Display List.
Executing a Display List.
Generating a Unique Display List ID.
Deleting and Reusing Display List IDs.
Sequential Display Lists.
Sharing Display Lists between RCs and Threads.
Hierarchical Display Lists.
Using Display Lists in the CopenGLView Class.
Rendering Windows Fonts in OpenGL.
The wglUseFontBitmaps () Function.
Adding Bitmapped Text to CopenGLView.
The wglUseFontOutlines () Function.
Animation Loops in Windows.
A Slightly Less Extreme Animation Loop.
Letting Windows Tell Us When to Redraw.
Getting the Smoothest Animation Possible.
Color and Lighting.
Color and Shading.
Types of Material Properties.
Specifying a Material Property.
Individual Light Sources.
Creating a Scene with Multiple Light Sources.
Optimizing the Rendering of Dynamically.
Changing Material Properties.
Windows Bitmap Files.
A Quick Look at Windows DIB Format.
A Special Microsoft Extension.
Reading a Windows Bitmap into an OpenGL Image.
Changing an Image's Size.
Specifying a Texture.
Multiple Images and Large Images.
Generating Images of Multiple Levels of Detail.
Introducing the CopenGLImage Class.
Deciding between Decal and Modulation Mode.
Using CopenGLImage to Select the Image.
Controlling Image Quality.
Applying a Textures to a Surface.
Repeating Textures and the glTexParameter* () Function.
Texture Quality and Filtering.
Texture Objects in OpenGL 1.1.
Other Texture-Mapping Features.
Manipulating OpenGL Objects.
Using Selection Mode.
Creating Names and a Name Stack.
Determining Which Objects Are Picked.
Overview of OpenGL Extensions.
In Pursuit of Extensions.
Getting an Extension's Address.
The Vertex Array Extensions Found in OpenGL.
Using Vertex Array Pointers.
Using Color Array Pointers.
Using Color-Index Array Pointers.
Using Normal Vector Array Pointers.
Using Edge-Flag Array Pointers.
Using Texture-Coordinate Array Pointers.
Enabling Vertex Array Functionality.
Rendering an Element of the Array.
Rendering All or Part of the Array.
Indirectly Rendering All or Part of the Array.
Manipulating Arrays of Vertex Arrays.
When to Modify Vertex Array Data.
OpenGL 1.1's Texture Objects.
OpenGL 1.1 Extensions.
The Silicon Graphics OpenGL Drivers-Cosmo OpenGL.
OpenGL and Windows 95.
Measuring Code Speed.