|
|
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.