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