# Graphics Card Drivers

A graphics card driver is the interface between the system and a specific graphics card. The driver is implemented as an add-on that's loaded by the Application Server when the Server starts up. Once the driver is loaded, it remains loaded until the machine is shut down.

Basic communication with a graphics card driver is performed through a single function called `control_graphics_card()`. The Application Server tells the driver which operation to perform by passing an opcode through this function. The driver can also implement a set of "hook" functions that the Server can invoke directly. (The locations of the hook functions are retrieved through a particular opcode passed to `control_graphics_card()`.)

The Application Server is the primary "consumer" of a graphics card driver's functionality. However, the Game Kit, through its BWindowScreen class, can also access and modify the graphics card's frame buffer, and can call the card's accelerated graphics functions.

This chapter explains how to use `control_graphics_card()`, lists and describes the opcodes and hook functions, and explains how to build a graphics card driver:

- Graphics Card Drivers: The Entry Point and General Opcodes describes the `control_graphics_card()` function and the fundamental opcodes.

- Graphics Card Drivers: Graphics Card Hook Functions describes the hook functions.

- The Game Kit gains access to a driver's hook functions through a driver "clone." The section Graphics Card Drivers: Driver Cloning Opcodes describes the opcodes that are sent when the Game Kit clones a driver.

- Graphics Card Drivers: Frame Buffer Opcodes are also used by the Game Kit, when it accesses the frame buffer.

- Graphics Card Drivers: Building and Installing a Driver explains how to build a driver add-on, and where to put it.

|  | This documentation is valid for PCI-based cards only.

The Be Book, in lovely HTML, for BeOS Release 3.

Copyright © 1998 Be, Inc. All rights reserved.

Last modified March 26, 1998.