GameWindow class will provide basic game window functionality. It will provide all of the basic properties we want to have in our game window, and it will be used as a base class. We will not be making many game window subclasses in this book, but the idea here is that you can make different subclasses for different types of game windows. For example, you can have a game window class for DirectX 10 as well as a game window class for DirectX 11.
The main things we need to implement for the
GameWindow class are a constructor to initialize it, Game Loop
RenderScene() methods, and a cleanup code for when the window is closed. A game loop is a method that is essentially the heart of a game engine. It is called ...