Chapter 2: Drivers

AgateLib is built with a driver architecture. A project developed with AgateLib needs only to link to AgateLib.dll. When Agate is initialized, it will search for available drivers in the working directory. These drivers are placed in other .NET assemblies and are loaded dynamically at run-time. This allows an application to switch from using, say, DirectX to OpenGL just by placing the correct file in the folder with the executable, without recompiling the program.

There are three types of drivers currently. Display drivers are used to render graphics, audio drivers are used to play sound and music, and input drivers are used to interface with a joystick.