summaryrefslogtreecommitdiff
path: root/common/quicktime_win32/CGDirectDisplay.h
diff options
context:
space:
mode:
authorFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
committerFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
commit3bf9df6b2785fa6d951086978a3e66f49427166a (patch)
tree2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /common/quicktime_win32/CGDirectDisplay.h
downloadarchived-source-engine-2018-hl2-src-master.tar.xz
archived-source-engine-2018-hl2-src-master.zip
Diffstat (limited to 'common/quicktime_win32/CGDirectDisplay.h')
-rw-r--r--common/quicktime_win32/CGDirectDisplay.h913
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_ */
+