diff options
Diffstat (limited to 'common/quicktime_win32/CGDirectDisplay.h')
| -rw-r--r-- | common/quicktime_win32/CGDirectDisplay.h | 913 |
1 files changed, 913 insertions, 0 deletions
diff --git a/common/quicktime_win32/CGDirectDisplay.h b/common/quicktime_win32/CGDirectDisplay.h new file mode 100644 index 0000000..6faeac5 --- /dev/null +++ b/common/quicktime_win32/CGDirectDisplay.h @@ -0,0 +1,913 @@ +/* + File: CGDirectDisplay.h + + Contains: CoreGraphics direct display + + Version: QuickTime 7.3 + + Copyright: (c) 2007 (c) 2000-2001 by Apple Computer, Inc., all rights reserved. + + Bugs?: For bug reports, consult the following page on + the World Wide Web: + + http://developer.apple.com/bugreporter/ + +*/ +#ifndef CGDIRECTDISPLAY_H_ +#define CGDIRECTDISPLAY_H_ + +#ifndef __CGBASE__ +#include <CGBase.h> +#endif + +#ifndef __CGGEOMETRY__ +#include <CGGeometry.h> +#endif + +#ifndef __CGERROR__ +#include <CGError.h> +#endif + +#ifndef __CFARRAY__ +#include <CFArray.h> +#endif + +#ifndef __CFSTRING__ +#include <CFString.h> +#endif + +#ifndef __CFDICTIONARY__ +#include <CFDictionary.h> +#endif + +#include <stdint.h> + + +#if PRAGMA_ONCE +#pragma once +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#if PRAGMA_IMPORT +#pragma import on +#endif + +typedef struct _CGDirectDisplayID* CGDirectDisplayID; +typedef struct _CGDirectPaletteRef* CGDirectPaletteRef; +typedef uint32_t CGDisplayCount; +typedef uint32_t CGTableCount; +typedef int32_t CGDisplayCoord; +typedef uint8_t CGByteValue; +typedef uint32_t CGOpenGLDisplayMask; +typedef uint32_t CGBeamPosition; +typedef int32_t CGMouseDelta; +typedef double CGRefreshRate; +typedef CGError CGDisplayErr; +enum { + CGDisplayNoErr = kCGErrorSuccess +}; + +/* A NULL value points to the main display device as a programming convention */ +#define kCGDirectMainDisplay ((CGDirectDisplayID)NULL) + +/* + * Mechanisms used to find screen IDs + * An array length (maxDisplays) and array of CGDirectDisplayIDs are passed in. + * Up to maxDisplays of the array are filled in with the displays meeting the + * specified criteria. The actual number of displays filled in is returned in + * dspyCnt. + * + * If the dspys array is NULL, maxDisplays is ignored, and *dspyCnt is filled + * in with the number of displays meeting the function's requirements. + */ +/* + * CGGetDisplaysWithPoint() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( CGDisplayErr ) +CGGetDisplaysWithPoint( + CGPoint point, + CGDisplayCount maxDisplays, + CGDirectDisplayID * dspys, + CGDisplayCount * dspyCnt); + + +/* + * CGGetDisplaysWithRect() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( CGDisplayErr ) +CGGetDisplaysWithRect( + CGRect rect, + CGDisplayCount maxDisplays, + CGDirectDisplayID * dspys, + CGDisplayCount * dspyCnt); + + +/* + * CGGetDisplaysWithOpenGLDisplayMask() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( CGDisplayErr ) +CGGetDisplaysWithOpenGLDisplayMask( + CGOpenGLDisplayMask mask, + CGDisplayCount maxDisplays, + CGDirectDisplayID * dspys, + CGDisplayCount * dspyCnt); + + +/* + * Get lists of displays. Use this to determine display IDs + * + * If the activeDspys array is NULL, maxDisplays is ignored, and *dspyCnt is filled + * in with the number of displays meeting the function's requirements. + * + * The first display returned in the list is the main display, + * the one with the menu bar. + * When mirroring, this will be the largest display, + * or if all are the same size, the one with the deepest pixel depth. + */ +/* + * CGGetActiveDisplayList() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( CGDisplayErr ) +CGGetActiveDisplayList( + CGDisplayCount maxDisplays, + CGDirectDisplayID * activeDspys, + CGDisplayCount * dspyCnt); + + +/* Map a display to an OpenGL display mask; returns 0 on invalid display */ +/* + * CGDisplayIDToOpenGLDisplayMask() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( CGOpenGLDisplayMask ) +CGDisplayIDToOpenGLDisplayMask(CGDirectDisplayID display); + + +/* Return screen size and origin in global coords; Empty rect if display is invalid */ +/* + * CGDisplayBounds() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( CGRect ) +CGDisplayBounds(CGDirectDisplayID display); + + +/* + * CGDisplayPixelsWide() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( size_t ) +CGDisplayPixelsWide(CGDirectDisplayID display); + + +/* + * CGDisplayPixelsHigh() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( size_t ) +CGDisplayPixelsHigh(CGDirectDisplayID display); + + +/* + * Display mode selection + * Display modes are represented as CFDictionaries + * All dictionaries and arrays returned via these mechanisms are + * owned by the framework and should not be released. The framework + * will not release them out from under your application. + * + * Values associated with the following keys are CFNumber types. + * With CFNumberGetValue(), use kCFNumberLongType for best results. + */ +/* + * Keys used in mode dictionaries. Source C strings shown won't change. + * Some CFM environments cannot import data variables, and so + * duplicate these CFStringRefs locally. + */ +/* + * kCGDisplayWidth + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +extern CFStringRef kCGDisplayWidth; +/* + * kCGDisplayHeight + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +extern CFStringRef kCGDisplayHeight; +/* + * kCGDisplayMode + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +extern CFStringRef kCGDisplayMode; +/* + * kCGDisplayBitsPerPixel + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +extern CFStringRef kCGDisplayBitsPerPixel; +/* + * kCGDisplayBitsPerSample + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +extern CFStringRef kCGDisplayBitsPerSample; +/* + * kCGDisplaySamplesPerPixel + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +extern CFStringRef kCGDisplaySamplesPerPixel; +/* + * kCGDisplayRefreshRate + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +extern CFStringRef kCGDisplayRefreshRate; +/* + * kCGDisplayModeUsableForDesktopGUI + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +extern CFStringRef kCGDisplayModeUsableForDesktopGUI; +/* + * kCGDisplayIOFlags + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +extern CFStringRef kCGDisplayIOFlags; +/* + * Return a CFArray of CFDictionaries describing all display modes. + * Returns NULL if the display is invalid. + */ +/* + * CGDisplayAvailableModes() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( CFArrayRef ) +CGDisplayAvailableModes(CGDirectDisplayID display); + + +/* + * Try to find a display mode of specified depth with dimensions equal or greater than + * specified. + * If no depth match is found, try for the next larger depth with dimensions equal or greater + * than specified. If no luck, then just return the current mode. + * + * exactmatch, if not NULL, is set to 'true' if an exact match in width, height, and depth is found, + * and 'false' otherwise. + * Returns NULL if display is invalid. + */ +/* + * CGDisplayBestModeForParameters() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( CFDictionaryRef ) +CGDisplayBestModeForParameters( + CGDirectDisplayID display, + size_t bitsPerPixel, + size_t width, + size_t height, + boolean_t * exactMatch); + + +/* + * CGDisplayBestModeForParametersAndRefreshRate() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( CFDictionaryRef ) +CGDisplayBestModeForParametersAndRefreshRate( + CGDirectDisplayID display, + size_t bitsPerPixel, + size_t width, + size_t height, + CGRefreshRate refresh, + boolean_t * exactMatch); + + +/* + * Return a CFDictionary describing the current display mode. + * Returns NULL if display is invalid. + */ +/* + * CGDisplayCurrentMode() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( CFDictionaryRef ) +CGDisplayCurrentMode(CGDirectDisplayID display); + + +/* + * Switch display mode. Note that after switching, + * display parameters and addresses may change. + * The selected display mode persists for the life of the program, and automatically + * reverts to the permanent setting made by Preferences when the program terminates. + * The mode dictionary passed in must be a dictionary vended by other CGDirectDisplay + * APIs such as CGDisplayBestModeForParameters() and CGDisplayAvailableModes(). + */ +/* + * CGDisplaySwitchToMode() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( CGDisplayErr ) +CGDisplaySwitchToMode( + CGDirectDisplayID display, + CFDictionaryRef mode); + + +/* Query parameters for current mode */ +/* + * CGDisplayBitsPerPixel() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( size_t ) +CGDisplayBitsPerPixel(CGDirectDisplayID display); + + +/* + * CGDisplayBitsPerSample() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( size_t ) +CGDisplayBitsPerSample(CGDirectDisplayID display); + + +/* + * CGDisplaySamplesPerPixel() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( size_t ) +CGDisplaySamplesPerPixel(CGDirectDisplayID display); + + +/* + * CGDisplayBytesPerRow() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( size_t ) +CGDisplayBytesPerRow(CGDirectDisplayID display); + + +/* + * Set a display gamma/transfer function from a formula specifying + * min and max values and a gamma for each channel. + * Gamma values must be greater than 0.0. + * To get an antigamma of 1.6, one would specify a value of (1.0 / 1.6) + * Min values must be greater than or equal to 0.0 and less than 1.0. + * Max values must be greater than 0.0 and less than or equal to 1.0. + * Out of range values, or Max greater than or equal to Min result + * in a kCGSRangeCheck error. + * + * Values are computed by sampling a function for a range of indices from 0 through 1: + * value = Min + ((Max - Min) * pow(index, Gamma)) + * The resulting values are converted to a machine specific format + * and loaded into hardware. + */ +typedef float CGGammaValue; +/* + * CGSetDisplayTransferByFormula() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( CGDisplayErr ) +CGSetDisplayTransferByFormula( + CGDirectDisplayID display, + CGGammaValue redMin, + CGGammaValue redMax, + CGGammaValue redGamma, + CGGammaValue greenMin, + CGGammaValue greenMax, + CGGammaValue greenGamma, + CGGammaValue blueMin, + CGGammaValue blueMax, + CGGammaValue blueGamma); + + +/* + * CGGetDisplayTransferByFormula() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( CGDisplayErr ) +CGGetDisplayTransferByFormula( + CGDirectDisplayID display, + CGGammaValue * redMin, + CGGammaValue * redMax, + CGGammaValue * redGamma, + CGGammaValue * greenMin, + CGGammaValue * greenMax, + CGGammaValue * greenGamma, + CGGammaValue * blueMin, + CGGammaValue * blueMax, + CGGammaValue * blueGamma); + + +/* + * Set a display gamma/transfer function using tables of data for each channel. + * Values within each table should have values in the range of 0.0 through 1.0. + * The same table may be passed in for red, green, and blue channels. 'tableSize' + * indicates the number of entries in each table. + * The tables are interpolated as needed to generate the number of samples needed + * by hardware. + */ +/* + * CGSetDisplayTransferByTable() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( CGDisplayErr ) +CGSetDisplayTransferByTable( + CGDirectDisplayID display, + CGTableCount tableSize, + const CGGammaValue * redTable, + const CGGammaValue * greenTable, + const CGGammaValue * blueTable); + + +/* + * Get transfer tables. Capacity should contain the number of samples each + * array can hold, and *sampleCount is filled in with the number of samples + * actually copied in. + */ +/* + * CGGetDisplayTransferByTable() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( CGDisplayErr ) +CGGetDisplayTransferByTable( + CGDirectDisplayID display, + CGTableCount capacity, + CGGammaValue * redTable, + CGGammaValue * greenTable, + CGGammaValue * blueTable, + CGTableCount * sampleCount); + + +/* As a convenience, allow setting of the gamma table by byte values */ +/* + * CGSetDisplayTransferByByteTable() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( CGDisplayErr ) +CGSetDisplayTransferByByteTable( + CGDirectDisplayID display, + CGTableCount tableSize, + const CGByteValue * redTable, + const CGByteValue * greenTable, + const CGByteValue * blueTable); + + +/* Restore gamma tables of system displays to the user's ColorSync specified values */ +/* + * CGDisplayRestoreColorSyncSettings() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGDisplayRestoreColorSyncSettings(void); + + +/* Display capture and release */ +/* + * CGDisplayIsCaptured() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( boolean_t ) +CGDisplayIsCaptured(CGDirectDisplayID display); + + +/* + * CGDisplayCapture() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( CGDisplayErr ) +CGDisplayCapture(CGDirectDisplayID display); + + +/* + * CGDisplayRelease() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( CGDisplayErr ) +CGDisplayRelease(CGDirectDisplayID display); + + + +/* + * Capture all displays; this has the nice effect of providing an immersive + * environment, and preventing other apps from trying to adjust themselves + * to display changes only needed by your app. + */ +/* + * CGCaptureAllDisplays() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( CGDisplayErr ) +CGCaptureAllDisplays(void); + + +/* + * Release all captured displays, and restore the display modes to the + * user's preferences. May be used in conjunction with CGDisplayCapture() + * or CGCaptureAllDisplays(). + */ +/* + * CGReleaseAllDisplays() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( CGDisplayErr ) +CGReleaseAllDisplays(void); + + + +/* + * Returns CoreGraphics raw shield window ID or NULL if not shielded + * This value may be used with drawing surface APIs. + */ +/* + * CGShieldingWindowID() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void * ) +CGShieldingWindowID(CGDirectDisplayID display); + + +/* + * Returns the window level used for the shield window. + * This value may be used with Cocoa windows to position the + * Cocoa window in the same window level as the shield window. + */ +/* + * CGShieldingWindowLevel() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( int32_t ) +CGShieldingWindowLevel(void); + + +/* + * Returns base address of display or NULL for an invalid display. + * If the display has not been captured, the returned address may refer + * to read-only memory. + */ +/* + * CGDisplayBaseAddress() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void * ) +CGDisplayBaseAddress(CGDirectDisplayID display); + + +/* + * return address for X,Y in screen coordinates; + * (0,0) represents the upper left corner of the display. + * returns NULL for an invalid display or out of bounds coordinates + * If the display has not been captured, the returned address may refer + * to read-only memory. + */ +/* + * CGDisplayAddressForPosition() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void * ) +CGDisplayAddressForPosition( + CGDirectDisplayID display, + CGDisplayCoord x, + CGDisplayCoord y); + + + +/* Mouse Cursor controls */ +/* + * CGDisplayHideCursor() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( CGDisplayErr ) +CGDisplayHideCursor(CGDirectDisplayID display); + + +/* increments hide cursor count */ +/* + * CGDisplayShowCursor() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( CGDisplayErr ) +CGDisplayShowCursor(CGDirectDisplayID display); + + +/* decrements hide cursor count */ +/* + * Move the cursor to the specified point relative to the display origin + * (the upper left corner of the display). Returns CGDisplayNoErr on success. + * No events are generated as a result of this move. + * Points that would lie outside the desktop are clipped to the desktop. + */ +/* + * CGDisplayMoveCursorToPoint() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( CGDisplayErr ) +CGDisplayMoveCursorToPoint( + CGDirectDisplayID display, + CGPoint point); + + +/* + * Report the mouse position change associated with the last mouse move event + * recieved by this application. + */ +/* + * CGGetLastMouseDelta() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGGetLastMouseDelta( + CGMouseDelta * deltaX, + CGMouseDelta * deltaY); + + + +/* Palette controls (8 bit pseudocolor only) */ +/* + * Returns TRUE if the current display mode supports palettes + */ +/* + * CGDisplayCanSetPalette() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( boolean_t ) +CGDisplayCanSetPalette(CGDirectDisplayID display); + + +/* + * Set a palette. The current gamma function is applied to the palette + * elements before being loaded into hardware. + */ +/* + * CGDisplaySetPalette() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( CGDisplayErr ) +CGDisplaySetPalette( + CGDirectDisplayID display, + CGDirectPaletteRef palette); + + +/* + * Wait until the beam position is outside the range specified by upperScanLine and lowerScanLine. + * Note that if upperScanLine and lowerScanLine encompass the entire display height, + * the function returns an error. + * lowerScanLine must be greater than or equal to upperScanLine. + * + * Some display systems may not conventional video vertical and horizontal sweep in painting. + * These displays report a kCGDisplayRefreshRate of 0 in the CFDictionaryRef returned by + * CGDisplayCurrentMode(). On such displays, this function returns at once. + * + * Some drivers may not implement support for this mechanism. + * On such displays, this function returns at once. + * + * Returns CGDisplayNoErr on success, and an error if display or upperScanLine and + * lowerScanLine are invalid. + * + * The app should set the values of upperScanLine and lowerScanLine to allow enough lead time + * for the drawing operation to complete. A common strategy is to wait for the beam to pass + * the bottom of the drawing area, allowing almost a full vertical sweep period to perform drawing. + * To do this, set upperScanLine to 0, and set lowerScanLine to the bottom of the bounding box: + * lowerScanLine = (CGBeamPosition)(cgrect.origin.y + cgrect.size.height); + * + * IOKit may implement this as a spin-loop on the beam position call used for CGDisplayBeamPosition(). + * On such system the function is CPU bound, and subject to all the usual scheduling pre-emption. + * In particular, attempting to wait for the beam to hit a specific scanline may be an exercise in frustration. + * + * These functions are advisary in nature, and depend on IOKit and hardware specific drivers to implement + * support. If you need extremely precise timing, or access to vertical blanking interrupts, + * you should consider writing a device driver to tie into hardware-specific capabilities. + */ +/* + * CGDisplayWaitForBeamPositionOutsideLines() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( CGDisplayErr ) +CGDisplayWaitForBeamPositionOutsideLines( + CGDirectDisplayID display, + CGBeamPosition upperScanLine, + CGBeamPosition lowerScanLine); + + +/* + * Returns the current beam position on the display. If display is invalid, + * or the display does not implement conventional video vertical and horizontal + * sweep in painting, or the driver does not implement this functionality, 0 is returned. + */ +/* + * CGDisplayBeamPosition() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( CGBeamPosition ) +CGDisplayBeamPosition(CGDirectDisplayID display); + + + +#ifdef PRAGMA_IMPORT_OFF +#pragma import off +#elif PRAGMA_IMPORT +#pragma import reset +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* CGDIRECTDISPLAY_H_ */ + |