|
|
1.1 root 1: /*
2: * Copyright (c) 1998-2000 Apple Computer, Inc. All rights reserved.
3: *
4: * @APPLE_LICENSE_HEADER_START@
5: *
6: * The contents of this file constitute Original Code as defined in and
7: * are subject to the Apple Public Source License Version 1.1 (the
8: * "License"). You may not use this file except in compliance with the
9: * License. Please obtain a copy of the License at
10: * http://www.apple.com/publicsource and read it before using this file.
11: *
12: * This Original Code and all software distributed under the License are
13: * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
14: * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
15: * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
16: * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the
17: * License for the specific language governing rights and limitations
18: * under the License.
19: *
20: * @APPLE_LICENSE_HEADER_END@
21: */
22:
23: #ifndef _IOGL_WINDOW_CONNECT_H
24: #define _IOGL_WINDOW_CONNECT_H
25:
26: #include <IOKit/graphics/IOGLTypes.h>
27:
28: /*
29: ** The IOGLAccelerator service name
30: */
31: #define kIOGLAcceleratorClassName "IOGLAccelerator"
32:
33:
34: /*
35: ** Window visible region in device coordinates.
36: **
37: ** num_rects: The number of rectangles in the rect array. If num_rects
38: ** is zero the bounds rectangle is used for the visible rectangle.
39: ** If num_rects is zero the window must be completely contained
40: ** by the device.
41: **
42: ** bounds: The unclipped window rectangle in device coords. Extends
43: ** beyond the device bounds if the window is not totally on
44: ** the device.
45: **
46: ** rect[]: An array of visible rectangles in device coords. If num_rects
47: ** is non-zero only the region described by these rectangles is
48: ** copied to the frame buffer during a flush operation.
49: */
50: typedef struct
51: {
52: UInt32 num_rects;
53: IOGLBounds bounds;
54: IOGLBounds rect[0];
55: } IOGLDeviceRegion;
56:
57:
58: /*
59: ** Determine the size of a region.
60: */
61: #define IOGL_SIZEOF_DEVICE_REGION(_rgn_) (sizeof(IOGLDeviceRegion) + (_rgn_)->num_rects * sizeof(IOGLBounds))
62:
63:
64: /*
65: ** IOGLAccelerator public client types. Private client types start with kIOGLNumClientTypes.
66: */
67: enum eIOGLAcceleratorClientTypes {
68: kIOGLDummyClientType,
69: kIOGLWindowClientType,
70: kIOGLNumClientTypes,
71: };
72:
73:
74: /*
75: ** Window client public memory types. Private memory types start with kIOGLNumWindowMemoryTypes.
76: */
77: enum eIOGLWindowMemoryTypes {
78: kIOGLNumWindowMemoryTypes,
79: };
80:
81:
82: /*
83: ** Window client public methods. Private methods start with kIOGLNumWindowMethods.
84: */
85: enum eIOGLWindowMethods {
86: kIOGLWindowSetIDMode,
87: kIOGLWindowSetShape,
88: kIOGLWindowGetState,
89: kIOGLWindowLock,
90: kIOGLWindowUnlock,
91: kIOGLNumWindowMethods,
92: };
93:
94:
95: /*
96: ** Option bits for IOGLCreateWindow and the kIOGLWindowSetIDMode method.
97: ** The color depth field can take any value of the _CGSDepth enumeration.
98: */
99: typedef enum {
100: kIOGLWindowModeColorDepthBits = 0x0000000F,
101: } eIOGLWindowModeBits;
102:
103:
104: /*
105: ** Options bits for IOGLSetWindowShape and the kIOGLWindowSetShape method.
106: */
107: typedef enum {
108: kIOGLWindowShapeNone = 0x00000000,
109: kIOGLWindowShapeBlockingBit = 0x00000001,
110: kIOGLWindowShapeNonSimpleBit = 0x00000002,
111: } eIOGLWindowShapeBits;
112:
113:
114: /*
115: ** Return bits for the kIOGLWindowGetState method.
116: */
117: typedef enum {
118: kIOGLWindowStateNone = 0x00000000,
119: kIOGLWindowStateIdleBit = 0x00000001,
120: } eIOGLWindowStateBits;
121:
122: #endif /* _IOGL_WINDOW_CONNECT_H */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.