I’m going to skip over the first few chapters of Introduction to 3D Game Programming with
Direct3D 11.0. I’ve got a basic understanding of basic linear algebra for 3D
graphics, and I’m not eager to get into the weeds there, instead opting to go straight into
the meat of DirectX coding. Besides the math pre-requisites, these chapters also give an
overview of the XNA Math C++ library, which I am going to forgo for the SlimDX types
instead. With that out of the way, we will begin with Chapter 4, Direct3D
Initialization. This chapter covers basic initialization of the Direct3D device, and lays
out the application framework used for the rest of the book. If you’ve read any of
Mr. Luna’s other DirectX books, this framework will look very familiar, and even if you
have not, it is basically a canonical example of a Windows game loop implementation. The
framework provides a base class that handles creating a window, initializing DirectX, and
provides some virtual methods that can be overridden in derived classes for application-specific
logic. Additionally, this chapter introduces a timer class, which allows for updating the
game world based on the elapsed time per frame, and for determining the frame rate, using the
high-performance system timer.