| # config.h
Version: | 5.3
Includes: | <sdkddkver.h> <windows.h>
## Introduction ARToolKit core configuration. ## Typedefs `AR_PIXEL_FORMAT` ARToolKit pixel-format specifiers. ### AR_PIXEL_FORMAT ARToolKit pixel-format specifiers.
    typedef enum {
        AR_PIXEL_FORMAT_INVALID = -1,
        AR_PIXEL_FORMAT_RGB = 0,
        AR_PIXEL_FORMAT_BGR,
        AR_PIXEL_FORMAT_RGBA,
        AR_PIXEL_FORMAT_BGRA,
        AR_PIXEL_FORMAT_ABGR,
        AR_PIXEL_FORMAT_MONO,
        AR_PIXEL_FORMAT_ARGB,
        AR_PIXEL_FORMAT_2vuy,
        AR_PIXEL_FORMAT_yuvs,
        AR_PIXEL_FORMAT_RGB_565,
        AR_PIXEL_FORMAT_RGBA_5551,
        AR_PIXEL_FORMAT_RGBA_4444,
        AR_PIXEL_FORMAT_420v,
        AR_PIXEL_FORMAT_420f,
        AR_PIXEL_FORMAT_NV21
    } AR_PIXEL_FORMAT;
##### Constants `AR_PIXEL_FORMAT_RGB` Each pixel is represented by 24 bits. Eight bits per each Red, Green, and Blue component. This is the native 24 bit format for the Mac platform. `AR_PIXEL_FORMAT_BGR` Each pixel is represented by 24 bits. Eight bits per each Blue, Red, and Green component. This is the native 24 bit format for the Win32 platform. `AR_PIXEL_FORMAT_RGBA` Each pixel is represented by 32 bits. Eight bits per each Red, Green, Blue, and Alpha component. `AR_PIXEL_FORMAT_BGRA` Each pixel is represented by 32 bits. Eight bits per each Blue, Green, Red, and Alpha component. This is the native 32 bit format for the Win32 and Mac Intel platforms. `AR_PIXEL_FORMAT_ABGR` Each pixel is represented by 32 bits. Eight bits per each Alpha, Blue, Green, and Red component. This is the native 32 bit format for the SGI platform. `AR_PIXEL_FORMAT_MONO` Each pixel is represented by 8 bits of luminance information. `AR_PIXEL_FORMAT_ARGB` Each pixel is represented by 32 bits. Eight bits per each Alpha, Red, Green, and Blue component. This is the native 32 bit format for the Mac PowerPC platform. `AR_PIXEL_FORMAT_2vuy` 8-bit 4:2:2 Component Y'CbCr format. Each 16 bit pixel is represented by an unsigned eight bit luminance component and two unsigned eight bit chroma components. Each pair of pixels shares a common set of chroma values. The components are ordered in memory; Cb, Y0, Cr, Y1. The luminance components have a range of [16, 235], while the chroma value has a range of [16, 240]. This is consistent with the CCIR601 spec. This format is fairly prevalent on both Mac and Win32 platforms. '2vuy' is the Apple QuickTime four-character code for this pixel format. The equivalent Microsoft fourCC is 'UYVY'. `AR_PIXEL_FORMAT_yuvs` 8-bit 4:2:2 Component Y'CbCr format. Identical to the AR_PIXEL_FORMAT_2vuy except each 16 bit word has been byte swapped. This results in a component ordering of; Y0, Cb, Y1, Cr. This is most prevalent yuv 4:2:2 format on both Mac and Win32 platforms. 'yuvs' is the Apple QuickTime four-character code for this pixel format. The equivalent Microsoft fourCC is 'YUY2'. `AR_PIXEL_FORMAT_RGB_565` A packed-pixel format. Each 16 bit pixel consists of 5 bits of red color information in bits 15-11, 6 bits of green color information in bits 10-5, and 5 bits of blue color information in bits 4-0. Byte ordering is big-endian. `AR_PIXEL_FORMAT_RGBA_5551` A packed-pixel format. Each 16 bit pixel consists of 5 bits of red color information in bits 15-11, 5 bits of green color information in bits 10-6, 5 bits of blue color information in bits 5-1, and a single alpha bit in bit 0. Byte ordering is big-endian. `AR_PIXEL_FORMAT_RGBA_4444` A packed-pixel format. Each 16 bit pixel consists of 4 bits of red color information in bits 15-12, 6 bits of green color information in bits 11-8, 4 bits of blue color information in bits 7-4, and 4 bits of alpha information in bits 3-0. Byte ordering is big-endian. `AR_PIXEL_FORMAT_420v` 8-bit 4:2:0 Component Y'CbCr format. Each 2x2 pixel block is represented by 4 unsigned eight bit luminance values and two unsigned eight bit chroma values. The chroma plane and luma plane are separated in memory. The luminance components have a range of [16, 235], while the chroma value has a range of [16, 240]. This is consistent with the CCIR601 spec. '420v' is the Apple Core Video four-character code for this pixel format. `AR_PIXEL_FORMAT_420f` 8-bit 4:2:0 Component Y'CbCr format. Each 2x2 pixel block is represented by 4 unsigned eight bit luminance components and two unsigned eight bit chroma components. The chroma plane and luma plane are separated in memory. The luminance components have a range of [0, 255], while the chroma value has a range of [1, 255]. '420f' is the Apple Core Video four-character code for this pixel format. The equivalent Microsoft fourCC is 'NV12'. `AR_PIXEL_FORMAT_NV21` 8-bit 4:2:0 Component Y'CbCr format. Each 2x2 pixel block is represented by 4 unsigned eight bit luminance components and two unsigned eight bit chroma components. The chroma plane and luma plane are separated in memory. The luminance components have a range of [0, 255], while the chroma value has a range of [1, 255]. ##### Discussion ARToolKit functions can accept pixel data in a variety of formats. This enumerations provides a set of constants you can use to request data in a particular pixel format from an ARToolKit function that returns data to you, or to specify that data you are providing to an ARToolKit function is in a particular pixel format. © 2015 Daqri, LLC. Last Updated: Monday, October 05, 2015