PATH 
ADC Home > Documentation > Hardware > Device Managers and Drivers > PCI Card Services > Designing PCI Cards and Drivers for Power Macintosh Computers


  

Definitions of Pixel Formats in C

Another way to describe the pixel formats in PCI-based Power Macintosh computers is by C struct definitions. The bit packing and bit ordering of packed bit structure fields in C match the endian formats of the target architecture.

Big-endian C compilers pack bits from left to right, while little-endian C compilers pack the bits from right to left. Hence different data structures must be used to describe a given pixel format, depending upon whether the target code is big-endian or little-endian.

Listing B-1 shows how the pixel formats described in this appendix can be defined in C for big-endian and little-endian bit ordering.

Listing B-1 C structures for pixel formats

typedef struct {                /* big-endian pixel formats */
    u_int       alpha:1;
    u_int       red:5;
    u_int       green:5;
    u_int       blue:5;
    } RGB_15_alpha;

typedef struct {
    u_int       alpha:8;
    u_int       red:8;
    u_int       green:8;
    u_int       blue:8;
    } RGB_24_alpha;

typedef struct {                /* little-endian pixel formats */
    u_int       blue:5;
    u_int       green:5;
    u_int       red:5;
    u_int       alpha:1;
    } RGB_15_alpha;

typedef struct {
    u_int       blue:8;
    u_int       green:8;
    u_int       red:8;
    u_int       alpha:8;
    } RGB_24_alpha;

© 1999 Apple Computer, Inc. – (Last Updated 26 March 99)