IOGraphicsInterfaceTypes.h [plain text]
#ifndef _IOKIT_IOGRAPHICSINTERFACETYPES_H
#define _IOKIT_IOGRAPHICSINTERFACETYPES_H
#include <IOKit/graphics/IOAccelSurfaceConnect.h>
#define IO_FOUR_CHAR_CODE(x) (x)
typedef UInt32 IOFourCharCode;
#ifdef IOGA_COMPAT
typedef SInt32 IOBlitCompletionToken;
#endif
typedef UInt32 IOBlitType;
enum {
kIOBlitTypeVerbMask = 0x000000ff,
kIOBlitTypeRects = 0,
kIOBlitTypeCopyRects,
kIOBlitTypeLines,
kIOBlitTypeScanlines,
kIOBlitTypeCopyRegion,
kIOBlitTypeMoveCursor,
kIOBlitTypeShowCursor,
kIOBlitTypeHideCursor,
kIOBlitTypeMonoExpand = 0x00000100,
kIOBlitTypeColorSpaceConvert = 0x00000200,
kIOBlitTypeScale = 0x00000400,
kIOBlitTypeSourceKeyColorModeMask = 0x00003000,
kIOBlitTypeDestKeyColorModeMask = 0x0000c000,
kIOBlitTypeSourceKeyColorEqual = 0x00001000,
kIOBlitTypeSourceKeyColorNotEqual = 0x00002000,
kIOBlitTypeDestKeyColorEqual = 0x00004000,
kIOBlitTypeDestKeyColorNotEqual = 0x00008000,
kIOBlitTypeOperationMask = 0x0fff0000,
kIOBlitTypeOperationShift = 16,
kIOBlitTypeOperationTypeMask = 0x0f000000,
kIOBlitTypeOperationType0 = 0x00000000,
kIOBlitCopyOperation = 0x00000000 | kIOBlitTypeOperationType0,
kIOBlitOrOperation = 0x00010000 | kIOBlitTypeOperationType0,
kIOBlitXorOperation = 0x00020000 | kIOBlitTypeOperationType0,
kIOBlitBlendOperation = 0x00030000 | kIOBlitTypeOperationType0,
kIOBlitHighlightOperation = 0x00040000 | kIOBlitTypeOperationType0
};
typedef UInt32 IOBlitSourceType;
enum {
kIOBlitSourceDefault = 0x00000000,
kIOBlitSourceFramebuffer = 0x00001000,
kIOBlitSourceMemory = 0x00002000,
kIOBlitSourceOOLMemory = 0x00003000,
kIOBlitSourcePattern = 0x00004000,
kIOBlitSourceOOLPattern = 0x00005000,
kIOBlitSourceSolid = 0x00006000,
kIOBlitSourceIsSame = 0x80000000,
};
#ifdef IOGA_COMPAT
typedef IOBlitSourceType IOBlitSourceDestType;
enum {
kIOBlitDestFramebuffer = 0x00000001
};
#endif
typedef struct IOBlitOperationStruct {
UInt32 color0;
UInt32 color1;
SInt32 offsetX;
SInt32 offsetY;
UInt32 sourceKeyColor;
UInt32 destKeyColor;
UInt32 specific[16];
} IOBlitOperation;
typedef struct IOBlitRectangleStruct {
SInt32 x;
SInt32 y;
SInt32 width;
SInt32 height;
} IOBlitRectangle;
typedef struct IOBlitRectanglesStruct {
IOBlitOperation operation;
IOItemCount count;
IOBlitRectangle rects[1];
} IOBlitRectangles;
typedef struct IOBlitCopyRectangleStruct {
SInt32 sourceX;
SInt32 sourceY;
SInt32 x;
SInt32 y;
SInt32 width;
SInt32 height;
} IOBlitCopyRectangle;
typedef struct IOBlitCopyRectanglesStruct {
IOBlitOperation operation;
IOItemCount count;
IOBlitCopyRectangle rects[1];
} IOBlitCopyRectangles;
typedef struct IOBlitCopyRegionStruct {
IOBlitOperation operation;
SInt32 deltaX;
SInt32 deltaY;
IOAccelDeviceRegion * region;
} IOBlitCopyRegion;
typedef struct IOBlitVertexStruct {
SInt32 x;
SInt32 y;
} IOBlitVertex;
typedef struct IOBlitVerticesStruct {
IOBlitOperation operation;
IOItemCount count;
IOBlitVertex vertices[2];
} IOBlitVertices;
typedef struct IOBlitScanlinesStruct {
IOBlitOperation operation;
IOItemCount count;
SInt32 y;
SInt32 height;
SInt32 x[2];
} IOBlitScanlines;
typedef struct IOBlitCursorStruct {
IOBlitOperation operation;
IOBlitRectangle rect;
} IOBlitCursor;
typedef struct _IOBlitMemory * IOBlitMemoryRef;
enum {
kIO1MonochromePixelFormat = 0x00000001,
kIO2IndexedPixelFormat = 0x00000002,
kIO4IndexedPixelFormat = 0x00000004,
kIO8IndexedPixelFormat = 0x00000008,
kIO16BE555PixelFormat = 0x00000010,
kIO24RGBPixelFormat = 0x00000018,
kIO32ARGBPixelFormat = 0x00000020,
kIO1IndexedGrayPixelFormat = 0x00000021,
kIO2IndexedGrayPixelFormat = 0x00000022,
kIO4IndexedGrayPixelFormat = 0x00000024,
kIO8IndexedGrayPixelFormat = 0x00000028
};
enum {
kIO16LE555PixelFormat = IO_FOUR_CHAR_CODE('L555'),
kIO16LE5551PixelFormat = IO_FOUR_CHAR_CODE('5551'),
kIO16BE565PixelFormat = IO_FOUR_CHAR_CODE('B565'),
kIO16LE565PixelFormat = IO_FOUR_CHAR_CODE('L565'),
kIO24BGRPixelFormat = IO_FOUR_CHAR_CODE('24BG'),
kIO32BGRAPixelFormat = IO_FOUR_CHAR_CODE('BGRA'),
kIO32ABGRPixelFormat = IO_FOUR_CHAR_CODE('ABGR'),
kIO32RGBAPixelFormat = IO_FOUR_CHAR_CODE('RGBA'),
kIOYUVSPixelFormat = IO_FOUR_CHAR_CODE('yuvs'),
kIOYUVUPixelFormat = IO_FOUR_CHAR_CODE('yuvu'),
kIOYVU9PixelFormat = IO_FOUR_CHAR_CODE('YVU9'),
kIOYUV411PixelFormat = IO_FOUR_CHAR_CODE('Y411'),
kIOYVYU422PixelFormat = IO_FOUR_CHAR_CODE('YVYU'),
kIOUYVY422PixelFormat = IO_FOUR_CHAR_CODE('UYVY'),
kIOYUV211PixelFormat = IO_FOUR_CHAR_CODE('Y211')
};
enum {
kIO16LE4444PixelFormat = IO_FOUR_CHAR_CODE('L444'),
kIO16BE4444PixelFormat = IO_FOUR_CHAR_CODE('B444'),
};
typedef struct IOBlitSurfaceStruct {
union {
UInt8 * bytes;
IOBlitMemoryRef ref;
} memory;
IOFourCharCode pixelFormat;
IOBlitRectangle size;
UInt32 rowBytes;
UInt32 byteOffset;
UInt32 * palette;
UInt32 more[16];
} IOBlitSurface;
typedef IOBlitSurface IOBlitMemory;
enum {
kIOBlitSynchronizeWaitBeamExit = 0x00000001,
kIOBlitSynchronizeFlushHostWrites = 0x00000002
};
enum {
kIOBlitWaitContext = 0x00000000,
kIOBlitWaitAll2D = 0x00000001,
kIOBlitWaitGlobal = 0x00000001,
kIOBlitWaitAll = 0x00000002,
kIOBlitWaitCheck = 0x00000080,
kIOBlitFlushWithSwap = 0x00010000,
};
enum {
kIOBlitHasCGSSurface = 0x00000001,
kIOBlitFixedSource = 0x00000002,
kIOBlitBeamSyncSwaps = 0x00000004,
};
enum {
kIOBlitUnlockWithSwap = 0x80000000
};
enum {
kIOBlitFramebufferDestination = 0x00000000,
kIOBlitSurfaceDestination = 0x00000001
};
enum {
kIOBlitBeamSync = 0x00000001,
kIOBlitBeamSyncAlways = 0x00000002,
kIOBlitBeamSyncSpin = 0x00000004,
kIOBlitAllOptions = 0xffffffff
};
enum {
kIOBlitColorSpaceTypes = IO_FOUR_CHAR_CODE('cspc')
};
#define kIOAccelTypesKey "IOAccelTypes"
#define kIOAccelIndexKey "IOAccelIndex"
#endif