#include <IOKit/graphics/IOFramebufferShared.h>
IOKit/graphics/IOFramebufferShared.h
@header IOFramebufferShared
The IOFramebufferShared.h header contains definitions of objects and types shared between a kernel level IOFrameBuffer service and a non-kernel window server. In Mac OS X this structure is used by the CoreGraphics server and IOGraphics Family, and is not available to other clients. IOFramebuffer subclasses and IOFramebuffer clients within the kernel should also not rely on this structure definition and constants. It is public only for use on Darwin based window servers. Cursor and window server state data is exchanged by kernel and non-kernel tasks through a slice of shared memory containing a StdFBShmem_t structure.<br>
For a non-kernel task to get access to this slice of shared memory, a connection to an IOFramebuffer service must be made. A connection is made with the IOServiceOpen() function described in IOKitLib.h. A connection type of kIOFBServerConnectType or kIOFBSharedConnectType (for read-only access) should be specified. An io_connect_t handle is returned by IOServiceOpen(). This handle must be passed to IOFBCreateSharedCursor() to create the slice of shared memory. Then IOConnectMapMemory() may be called with a memory type of kIOFBCursorMemory to map the shared memory into the non-kernel task.
macroIOFB_ARBITRARY_SIZE_CURSOR
CGS use optional
@defined IOFB_ARBITRARY_SIZE_CURSOR
@discussion When IOFB_ARBITRARY_SIZE_CURSOR is not defined, the maximum cursor size is assumed to be CURSORWIDTH x CURSORHEIGHT and this header file will define a number of structures for storing cursor images accordingly. A non-kernel task may define IOFB_ARBITRARY_SIZE_CURSOR and use cursors up to the size specified when IOFBCreateSharedCursor() was called. In this case appropriate structures for storing cursor images must be defined elsewhere. In the kernel, IOFB_ARBITRARY_SIZE_CURSOR is always defined.
#define IOFB_ARBITRARY_SIZE_CURSOR
macroIOFB_ARBITRARY_FRAMES_CURSOR
#define IOFB_ARBITRARY_FRAMES_CURSOR 1
macroIOFB_SUPPORTS_XOR_CURSOR
#define IOFB_SUPPORTS_XOR_CURSOR
macroIOFB_SUPPORTS_HW_SHIELD
#define IOFB_SUPPORTS_HW_SHIELD
macroIOFB_SUPPORTS_ARBITRARY_FRAMES_CURSOR
#define IOFB_SUPPORTS_ARBITRARY_FRAMES_CURSOR
enum(anonymous)
Cursor and Window Server state data, occupying a slice of shared memory
between the kernel and WindowServer.
@enum CursorParameters
@constant kIOFBNumCursorFrames The number of cursor images stored in the StdFBShmem_t structure.
@constant kIOFBNumCursorFramesShift Used with waiting cursors.
@constant kIOFBMaxCursorDepth The maximum cursor pixel depth.
| kIOFBMainCursorIndex | 0 | |
| kIOFBWaitCursorIndex | 1 | |
| kIOFBNumCursorIndex | 4 | |
| kIOFBMaxCursorDepth | 32 | |
| kIOFBMaxCursorWidth | 256 | |
| kIOFBMaxCursorFrames | 32 |
enum(anonymous)
| kIOFBCursorImageNew | 1 | |
| kIOFBCursorHWCapable | 2 |
enum(anonymous)
| kIOFBHardwareCursorActive | 1 | |
| kIOFBHardwareCursorInVRAM | 2 |
structStdFBShmem_t
| OSSpinLock | cursorSema | |
| int | frame | |
| char | cursorShow | |
| char | cursorObscured | |
| char | shieldFlag | |
| char | shielded | |
| IOGBounds | saveRect | |
| IOGBounds | shieldRect | |
| IOGPoint | cursorLoc | |
| IOGBounds | cursorRect | |
| IOGBounds | oldCursorRect | |
| IOGBounds | screenBounds | |
| int | version | |
| int | structSize | |
| AbsoluteTime | vblTime | |
| AbsoluteTime | vblDelta | |
| unsigned long long | vblCount | |
| unsigned long long | vblDrift | |
| unsigned long long | vblDeltaMeasured | |
| AbsoluteTime | vblDeltaReal | |
| unsigned int[22] | reservedC | |
| unsigned char | hardwareCursorCapable | |
| unsigned char | hardwareCursorActive | |
| unsigned char | hardwareCursorShields | |
| unsigned char[1] | reservedB | |
| IOGSize[4] | cursorSize | |
| IOGPoint[4] | hotSpot | |
| unsigned char[0] | cursor |
enum(anonymous)
@enum FramebufferConstants
@constant kIOFBCurrentShmemVersion The current version of the slice of shared memory that contains the cursor and window server state data in the StdFBShmem_t structure.
@constant kIOFBCursorMemory The memory type for IOConnectMapMemory() to get a slice of shared memory that contains the StdFBShmem_t structure.
| kIOFBShmemVersionMask | 255 | version for IOFBCreateSharedCursor |
| kIOFBTenPtOneShmemVersion | 2 | |
| kIOFBTenPtTwoShmemVersion | 3 | |
| kIOFBCurrentShmemVersion | 2 | |
| kIOFBShmemCursorNumFramesMask | 16711680 | number of frames in animating cursor (if > kIOFBTenPtTwoShmemVersion) |
| kIOFBShmemCursorNumFramesShift | 16 | |
| kIOFBCursorMemory | 100 | memory types for IOConnectMapMemory. |
macroIOFRAMEBUFFER_CONFORMSTO
@defined IOFRAMEBUFFER_CONFORMSTO
@discussion The class name of the framebuffer service.
#define IOFRAMEBUFFER_CONFORMSTO "IOFramebuffer"