Learn about DirectX and the book sketch
"DirectX is a rich, low-level API developed by Microsoft that covers support for 2D/3D graphics acceleration, control of various input devices, mixing and sampling of sound and music output, control of multiplayer network games, control of various multimedia streaming modes, etc."
--From the preface of the translator of this book
This book is mainly to explain the use of Directx3d for interactive game development. Directx3d is just a subset of DirectX. Directx3d is a large API cluster that must learn to use the DirectX SDK documentation.
Code conventions and other rules: All member variables are prefixed by an underscore;
Global variables and function names begin with uppercase letters, and local variables and method names begin with lowercase letters;
All the code in this book does not handle the exception;
Some aspects of DirectX are not mentioned in this book, supplemented here (from "Direct3D Game Development Technology")
Before Windows appeared, DOS was the most popular operating system, and game development was mostly run on DOS, but the efficiency and effects were unbearable. At this time, Windo Ws95 appeared, and accompanied by the advent of DirectX1.0. From then on, DirectX established the standard of game development.
DirectX contains several components, which are briefly described below:
1. Direct3d:3d graphics package, with the support of graphics cards to provide a variety of rich, powerful graphics rendering function.
2. directdraw:2d graphics package, provide hardware accelerated 2D rendering display function.
3. DirectInput: Provides support for input devices including joystick, mouse, keyboard, and game controllers.
4. DirectPlay: Provides support for the development of multiplayer networking games, including the ability to handle player connections, messaging, voice communication frameworks, and more.
5. DirectSound: Audio support for low latency sound and high control of hardware resources.
6. DirectShow: Provides media streaming architecture support to play high quality video and audio.
7. DirectSetup: Provides installation support for DirectX applications.
About HAL
HAL (Hardware abstraction Layer), which is the hardware abstraction layer. It and other relationships are shown in the following illustration:
As you can see from the diagram, the bottom graphics hardware is the graphics display card hardware, on which the device Driver interface is the display card driver, provided by the video card manufacturer. The drivers are then architected with two sets of APIs, one for Windows GDI and the other for the Direct3D API on the HAL hardware abstraction layer. The HAL can provide better performance by accelerating the Direct3D API through the mode supported by the video card.
DirectX is based on Microsoft's COM (Component Object Model). Design COM is expected to provide a more secure, scalable, portable software module. COM is a binary programming model whose interfaces cannot be changed in any way and provide forward-compatible functionality. The binary programming model of COM itself makes Cross-language programming a big advantage.
In addition, I also like the book inside the sentence:
3D game programming is not like other areas of learning a few sentences can be copied knife battle ...
--Josh October 12, 2012