|
|
1.1 ! root 1: ! 2: #ifndef _IOACCEL_SURFACE_CONNECT_H ! 3: #define _IOACCEL_SURFACE_CONNECT_H ! 4: ! 5: #include <IOKit/graphics/IOAccelTypes.h> ! 6: #include <IOKit/graphics/IOAccelClientConnect.h> ! 7: ! 8: ! 9: /* ! 10: ** Surface visible region in device coordinates. ! 11: ** ! 12: ** num_rects: The number of rectangles in the rect array. If num_rects ! 13: ** is zero the bounds rectangle is used for the visible rectangle. ! 14: ** If num_rects is zero the surface must be completely contained ! 15: ** by the device. ! 16: ** ! 17: ** bounds: The unclipped surface rectangle in device coords. Extends ! 18: ** beyond the device bounds if the surface is not totally on ! 19: ** the device. ! 20: ** ! 21: ** rect[]: An array of visible rectangles in device coords. If num_rects ! 22: ** is non-zero only the region described by these rectangles is ! 23: ** copied to the frame buffer during a flush operation. ! 24: */ ! 25: typedef struct ! 26: { ! 27: UInt32 num_rects; ! 28: IOAccelBounds bounds; ! 29: IOAccelBounds rect[0]; ! 30: } IOAccelDeviceRegion; ! 31: ! 32: ! 33: /* ! 34: ** Determine the size of a region. ! 35: */ ! 36: #define IOACCEL_SIZEOF_DEVICE_REGION(_rgn_) (sizeof(IOAccelDeviceRegion) + (_rgn_)->num_rects * sizeof(IOAccelBounds)) ! 37: ! 38: ! 39: /* ! 40: ** Surface client public memory types. Private memory types start with ! 41: ** kIOAccelNumSurfaceMemoryTypes. ! 42: */ ! 43: enum eIOAccelSurfaceMemoryTypes { ! 44: kIOAccelNumSurfaceMemoryTypes, ! 45: }; ! 46: ! 47: ! 48: /* ! 49: ** Surface client public methods. Private methods start with ! 50: ** kIOAccelNumSurfaceMethods. ! 51: */ ! 52: enum eIOAccelSurfaceMethods { ! 53: kIOAccelSurfaceSetIDMode, ! 54: kIOAccelSurfaceSetShape, ! 55: kIOAccelSurfaceGetState, ! 56: kIOAccelSurfaceLock, ! 57: kIOAccelSurfaceUnlock, ! 58: kIOAccelNumSurfaceMethods, ! 59: }; ! 60: ! 61: ! 62: /* ! 63: ** Option bits for IOAccelCreateSurface and the kIOAccelSurfaceSetIDMode method. ! 64: ** The color depth field can take any value of the _CGSDepth enumeration. ! 65: */ ! 66: typedef enum { ! 67: kIOAccelSurfaceModeColorDepthBits = 0x0000000F, ! 68: } eIOAccelSurfaceModeBits; ! 69: ! 70: ! 71: /* ! 72: ** Options bits for IOAccelSetSurfaceShape and the kIOAccelSurfaceSetShape method. ! 73: */ ! 74: typedef enum { ! 75: kIOAccelSurfaceShapeNone = 0x00000000, ! 76: kIOAccelSurfaceShapeBlockingBit = 0x00000001, ! 77: kIOAccelSurfaceShapeNonSimpleBit = 0x00000002, ! 78: } eIOAccelSurfaceShapeBits; ! 79: ! 80: ! 81: /* ! 82: ** Return bits for the kIOAccelSurfaceGetState method. ! 83: */ ! 84: typedef enum { ! 85: kIOAccelSurfaceStateNone = 0x00000000, ! 86: kIOAccelSurfaceStateIdleBit = 0x00000001, ! 87: } eIOAccelSurfaceStateBits; ! 88: ! 89: ! 90: #endif /* _IOACCEL_SURFACE_CONNECT_H */ ! 91:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.