summaryrefslogtreecommitdiff
path: root/common/quicktime_win32/QD3DDrawContext.h
diff options
context:
space:
mode:
Diffstat (limited to 'common/quicktime_win32/QD3DDrawContext.h')
-rw-r--r--common/quicktime_win32/QD3DDrawContext.h1048
1 files changed, 1048 insertions, 0 deletions
diff --git a/common/quicktime_win32/QD3DDrawContext.h b/common/quicktime_win32/QD3DDrawContext.h
new file mode 100644
index 0000000..fbd32b9
--- /dev/null
+++ b/common/quicktime_win32/QD3DDrawContext.h
@@ -0,0 +1,1048 @@
+/*
+ File: QD3DDrawContext.h
+
+ Contains: Draw context class types and routines
+
+ Version: Technology: Quickdraw 3D 1.6
+ Release: QuickTime 7.3
+
+ Copyright: (c) 2007 (c) 1995-1999 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 __QD3DDRAWCONTEXT__
+#define __QD3DDRAWCONTEXT__
+
+#ifndef __QD3D__
+#include <QD3D.h>
+#endif
+
+
+#if TARGET_OS_MAC
+#ifndef __QUICKDRAW__
+#include <Quickdraw.h>
+#endif
+
+#ifndef __FIXMATH__
+#include <FixMath.h>
+#endif
+
+#ifndef __GXTYPES__
+#include <GXTypes.h>
+#endif
+
+#endif /* TARGET_OS_MAC */
+
+
+#if TARGET_OS_UNIX
+ #include <X11/Xlib.h>
+ #include <X11/Xutil.h>
+#endif /* TARGET_OS_WIN32 */
+
+
+#if TARGET_OS_WIN32
+ /******************************************************************************
+ * **
+ * ABOUT QD3D_NO_DIRECTDRAW: (Win32 Only) **
+ * **
+ * NOTE: Define QD3D_NO_DIRECTDRAW for your application makefile/project **
+ * only if you don't need Q3DDSurfaceDrawContext support and don't **
+ * have access to ddraw.h. **
+ * **
+ *****************************************************************************/
+ #include <windows.h>
+ #if !defined(QD3D_NO_DIRECTDRAW)
+ #include <ddraw.h>
+ #endif /* !QD3D_NO_DIRECTDRAW */
+#endif /* TARGET_OS_WIN32 */
+
+
+
+#if PRAGMA_ONCE
+#pragma once
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if PRAGMA_IMPORT
+#pragma import on
+#endif
+
+#if PRAGMA_STRUCT_ALIGN
+ #pragma options align=power
+#elif PRAGMA_STRUCT_PACKPUSH
+ #pragma pack(push, 2)
+#elif PRAGMA_STRUCT_PACK
+ #pragma pack(2)
+#endif
+
+#if PRAGMA_ENUM_ALWAYSINT
+ #if defined(__fourbyteints__) && !__fourbyteints__
+ #define __QD3DDRAWCONTEXT__RESTORE_TWOBYTEINTS
+ #pragma fourbyteints on
+ #endif
+ #pragma enumsalwaysint on
+#elif PRAGMA_ENUM_OPTIONS
+ #pragma option enum=int
+#elif PRAGMA_ENUM_PACK
+ #if __option(pack_enums)
+ #define __QD3DDRAWCONTEXT__RESTORE_PACKED_ENUMS
+ #pragma options(!pack_enums)
+ #endif
+#endif
+
+/******************************************************************************
+ ** **
+ ** DrawContext Data Structures **
+ ** **
+ *****************************************************************************/
+enum TQ3DrawContextClearImageMethod {
+ kQ3ClearMethodNone = 0,
+ kQ3ClearMethodWithColor = 1
+};
+typedef enum TQ3DrawContextClearImageMethod TQ3DrawContextClearImageMethod;
+
+
+struct TQ3DrawContextData {
+ TQ3DrawContextClearImageMethod clearImageMethod;
+ TQ3ColorARGB clearImageColor;
+ TQ3Area pane;
+ TQ3Boolean paneState;
+ TQ3Bitmap mask;
+ TQ3Boolean maskState;
+ TQ3Boolean doubleBufferState;
+};
+typedef struct TQ3DrawContextData TQ3DrawContextData;
+/******************************************************************************
+ ** **
+ ** DrawContext Routines **
+ ** **
+ *****************************************************************************/
+#if CALL_NOT_IN_CARBON
+/*
+ * Q3DrawContext_GetType()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3ObjectType )
+Q3DrawContext_GetType(TQ3DrawContextObject drawContext);
+
+
+/*
+ * Q3DrawContext_SetData()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3DrawContext_SetData(
+ TQ3DrawContextObject context,
+ const TQ3DrawContextData * contextData);
+
+
+/*
+ * Q3DrawContext_GetData()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3DrawContext_GetData(
+ TQ3DrawContextObject context,
+ TQ3DrawContextData * contextData);
+
+
+/*
+ * Q3DrawContext_SetClearImageColor()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3DrawContext_SetClearImageColor(
+ TQ3DrawContextObject context,
+ const TQ3ColorARGB * color);
+
+
+/*
+ * Q3DrawContext_GetClearImageColor()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3DrawContext_GetClearImageColor(
+ TQ3DrawContextObject context,
+ TQ3ColorARGB * color);
+
+
+/*
+ * Q3DrawContext_SetPane()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3DrawContext_SetPane(
+ TQ3DrawContextObject context,
+ const TQ3Area * pane);
+
+
+/*
+ * Q3DrawContext_GetPane()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3DrawContext_GetPane(
+ TQ3DrawContextObject context,
+ TQ3Area * pane);
+
+
+/*
+ * Q3DrawContext_SetPaneState()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3DrawContext_SetPaneState(
+ TQ3DrawContextObject context,
+ TQ3Boolean state);
+
+
+/*
+ * Q3DrawContext_GetPaneState()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3DrawContext_GetPaneState(
+ TQ3DrawContextObject context,
+ TQ3Boolean * state);
+
+
+/*
+ * Q3DrawContext_SetClearImageMethod()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3DrawContext_SetClearImageMethod(
+ TQ3DrawContextObject context,
+ TQ3DrawContextClearImageMethod method);
+
+
+/*
+ * Q3DrawContext_GetClearImageMethod()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3DrawContext_GetClearImageMethod(
+ TQ3DrawContextObject context,
+ TQ3DrawContextClearImageMethod * method);
+
+
+/*
+ * Q3DrawContext_SetMask()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3DrawContext_SetMask(
+ TQ3DrawContextObject context,
+ const TQ3Bitmap * mask);
+
+
+/*
+ * Q3DrawContext_GetMask()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3DrawContext_GetMask(
+ TQ3DrawContextObject context,
+ TQ3Bitmap * mask);
+
+
+/*
+ * Q3DrawContext_SetMaskState()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3DrawContext_SetMaskState(
+ TQ3DrawContextObject context,
+ TQ3Boolean state);
+
+
+/*
+ * Q3DrawContext_GetMaskState()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3DrawContext_GetMaskState(
+ TQ3DrawContextObject context,
+ TQ3Boolean * state);
+
+
+/*
+ * Q3DrawContext_SetDoubleBufferState()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3DrawContext_SetDoubleBufferState(
+ TQ3DrawContextObject context,
+ TQ3Boolean state);
+
+
+/*
+ * Q3DrawContext_GetDoubleBufferState()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3DrawContext_GetDoubleBufferState(
+ TQ3DrawContextObject context,
+ TQ3Boolean * state);
+
+
+
+/******************************************************************************
+ ** **
+ ** Pixmap Data Structure **
+ ** **
+ *****************************************************************************/
+#endif /* CALL_NOT_IN_CARBON */
+
+struct TQ3PixmapDrawContextData {
+ TQ3DrawContextData drawContextData;
+ TQ3Pixmap pixmap;
+};
+typedef struct TQ3PixmapDrawContextData TQ3PixmapDrawContextData;
+/******************************************************************************
+ ** **
+ ** Pixmap DrawContext Routines **
+ ** **
+ *****************************************************************************/
+#if CALL_NOT_IN_CARBON
+/*
+ * Q3PixmapDrawContext_New()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3DrawContextObject )
+Q3PixmapDrawContext_New(const TQ3PixmapDrawContextData * contextData);
+
+
+/*
+ * Q3PixmapDrawContext_SetPixmap()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3PixmapDrawContext_SetPixmap(
+ TQ3DrawContextObject drawContext,
+ const TQ3Pixmap * pixmap);
+
+
+/*
+ * Q3PixmapDrawContext_GetPixmap()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3PixmapDrawContext_GetPixmap(
+ TQ3DrawContextObject drawContext,
+ TQ3Pixmap * pixmap);
+
+
+
+
+#endif /* CALL_NOT_IN_CARBON */
+
+#if TARGET_OS_MAC
+/******************************************************************************
+ ** **
+ ** Macintosh DrawContext Data Structures **
+ ** **
+ *****************************************************************************/
+enum TQ3MacDrawContext2DLibrary {
+ kQ3Mac2DLibraryNone = 0,
+ kQ3Mac2DLibraryQuickDraw = 1,
+ kQ3Mac2DLibraryQuickDrawGX = 2
+};
+typedef enum TQ3MacDrawContext2DLibrary TQ3MacDrawContext2DLibrary;
+
+
+struct TQ3MacDrawContextData {
+ TQ3DrawContextData drawContextData;
+ CWindowPtr window;
+ TQ3MacDrawContext2DLibrary library;
+ gxViewPort viewPort;
+ CGrafPtr grafPort;
+};
+typedef struct TQ3MacDrawContextData TQ3MacDrawContextData;
+/******************************************************************************
+ ** **
+ ** Macintosh DrawContext Routines **
+ ** **
+ *****************************************************************************/
+#if CALL_NOT_IN_CARBON
+/*
+ * Q3MacDrawContext_New()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3DrawContextObject )
+Q3MacDrawContext_New(const TQ3MacDrawContextData * drawContextData);
+
+
+/*
+ * Q3MacDrawContext_SetWindow()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3MacDrawContext_SetWindow(
+ TQ3DrawContextObject drawContext,
+ CWindowPtr window);
+
+
+/*
+ * Q3MacDrawContext_GetWindow()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3MacDrawContext_GetWindow(
+ TQ3DrawContextObject drawContext,
+ CWindowPtr * window);
+
+
+/*
+ * Q3MacDrawContext_SetGXViewPort()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3MacDrawContext_SetGXViewPort(
+ TQ3DrawContextObject drawContext,
+ gxViewPort viewPort);
+
+
+/*
+ * Q3MacDrawContext_GetGXViewPort()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3MacDrawContext_GetGXViewPort(
+ TQ3DrawContextObject drawContext,
+ gxViewPort * viewPort);
+
+
+/*
+ * Q3MacDrawContext_SetGrafPort()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3MacDrawContext_SetGrafPort(
+ TQ3DrawContextObject drawContext,
+ CGrafPtr grafPort);
+
+
+/*
+ * Q3MacDrawContext_GetGrafPort()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3MacDrawContext_GetGrafPort(
+ TQ3DrawContextObject drawContext,
+ CGrafPtr * grafPort);
+
+
+/*
+ * Q3MacDrawContext_Set2DLibrary()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3MacDrawContext_Set2DLibrary(
+ TQ3DrawContextObject drawContext,
+ TQ3MacDrawContext2DLibrary library);
+
+
+/*
+ * Q3MacDrawContext_Get2DLibrary()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3MacDrawContext_Get2DLibrary(
+ TQ3DrawContextObject drawContext,
+ TQ3MacDrawContext2DLibrary * library);
+
+
+#endif /* CALL_NOT_IN_CARBON */
+
+#endif /* TARGET_OS_MAC */
+
+#if TARGET_OS_UNIX
+/******************************************************************************
+ ** **
+ ** X/Windows DrawContext Data Structures **
+ ** **
+ *****************************************************************************/
+typedef struct OpaqueTQ3XBufferObject* TQ3XBufferObject;
+struct TQ3XColormapData {
+ long baseEntry;
+ long maxRed;
+ long maxGreen;
+ long maxBlue;
+ long multRed;
+ long multGreen;
+ long multBlue;
+};
+typedef struct TQ3XColormapData TQ3XColormapData;
+struct TQ3XDrawContextData {
+ TQ3DrawContextData contextData;
+ Display * display;
+ Drawable drawable;
+ Visual * visual;
+ Colormap cmap;
+ TQ3XColormapData * colorMapData;
+};
+typedef struct TQ3XDrawContextData TQ3XDrawContextData;
+/******************************************************************************
+ ** **
+ ** X/Windows DrawContext Routines **
+ ** **
+ *****************************************************************************/
+#ifdef XDC_OLD
+#if CALL_NOT_IN_CARBON
+/*
+ * Q3XDrawContext_New()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3DrawContextObject )
+Q3XDrawContext_New(void);
+
+
+/*
+ * Q3XDrawContext_Set()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( void )
+Q3XDrawContext_Set(
+ TQ3DrawContextObject drawContext,
+ unsigned long flag,
+ void * data);
+
+
+/*
+ * Q3XDrawContext_Get()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( void )
+Q3XDrawContext_Get(
+ TQ3DrawContextObject drawContext,
+ unsigned long flag,
+ void * data);
+
+
+#endif /* CALL_NOT_IN_CARBON */
+
+#endif /* defined(XDC_OLD) */
+
+#if CALL_NOT_IN_CARBON
+/*
+ * Q3XBuffers_New()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3XBufferObject )
+Q3XBuffers_New(
+ Display * dpy,
+ unsigned long numBuffers,
+ Window window);
+
+
+/*
+ * Q3XBuffers_Swap()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( void )
+Q3XBuffers_Swap(
+ Display * dpy,
+ TQ3XBufferObject buffers);
+
+
+/*
+ * Q3X_GetVisualInfo()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( XVisualInfo * )
+Q3X_GetVisualInfo(
+ Display * dpy,
+ Screen * screen);
+
+
+
+/*
+ * Q3XDrawContext_New()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3DrawContextObject )
+Q3XDrawContext_New(const TQ3XDrawContextData * xContextData);
+
+
+/*
+ * Q3XDrawContext_SetDisplay()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3XDrawContext_SetDisplay(
+ TQ3DrawContextObject drawContext,
+ const Display * display);
+
+
+/*
+ * Q3XDrawContext_GetDisplay()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3XDrawContext_GetDisplay(
+ TQ3DrawContextObject drawContext,
+ Display ** display);
+
+
+/*
+ * Q3XDrawContext_SetDrawable()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3XDrawContext_SetDrawable(
+ TQ3DrawContextObject drawContext,
+ Drawable drawable);
+
+
+/*
+ * Q3XDrawContext_GetDrawable()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3XDrawContext_GetDrawable(
+ TQ3DrawContextObject drawContext,
+ Drawable * drawable);
+
+
+/*
+ * Q3XDrawContext_SetVisual()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3XDrawContext_SetVisual(
+ TQ3DrawContextObject drawContext,
+ const Visual * visual);
+
+
+/*
+ * Q3XDrawContext_GetVisual()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3XDrawContext_GetVisual(
+ TQ3DrawContextObject drawContext,
+ Visual ** visual);
+
+
+/*
+ * Q3XDrawContext_SetColormap()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3XDrawContext_SetColormap(
+ TQ3DrawContextObject drawContext,
+ Colormap colormap);
+
+
+/*
+ * Q3XDrawContext_GetColormap()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3XDrawContext_GetColormap(
+ TQ3DrawContextObject drawContext,
+ Colormap * colormap);
+
+
+/*
+ * Q3XDrawContext_SetColormapData()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3XDrawContext_SetColormapData(
+ TQ3DrawContextObject drawContext,
+ const TQ3XColormapData * colormapData);
+
+
+/*
+ * Q3XDrawContext_GetColormapData()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3XDrawContext_GetColormapData(
+ TQ3DrawContextObject drawContext,
+ TQ3XColormapData * colormapData);
+
+
+#endif /* CALL_NOT_IN_CARBON */
+
+#endif /* TARGET_OS_UNIX */
+
+#if TARGET_OS_WIN32
+/******************************************************************************
+ ** **
+ ** Win32 DrawContext Data Structures **
+ ** **
+ *****************************************************************************/
+struct TQ3Win32DCDrawContextData {
+ TQ3DrawContextData drawContextData;
+ HDC hdc;
+};
+typedef struct TQ3Win32DCDrawContextData TQ3Win32DCDrawContextData;
+#ifndef QD3D_NO_DIRECTDRAW
+enum TQ3DirectDrawObjectSelector {
+ kQ3DirectDrawObject = 1,
+ kQ3DirectDrawObject2 = 2
+};
+typedef enum TQ3DirectDrawObjectSelector TQ3DirectDrawObjectSelector;
+
+enum TQ3DirectDrawSurfaceSelector {
+ kQ3DirectDrawSurface = 1,
+ kQ3DirectDrawSurface2 = 2
+};
+typedef enum TQ3DirectDrawSurfaceSelector TQ3DirectDrawSurfaceSelector;
+
+
+struct TQ3DDSurfaceDescriptor {
+ TQ3DirectDrawObjectSelector objectSelector;
+ union
+ {
+ LPDIRECTDRAW lpDirectDraw;
+ LPDIRECTDRAW2 lpDirectDraw2;
+ };
+
+ TQ3DirectDrawSurfaceSelector surfaceSelector;
+ union
+ {
+ LPDIRECTDRAWSURFACE lpDirectDrawSurface;
+ LPDIRECTDRAWSURFACE2 lpDirectDrawSurface2;
+ };
+};
+typedef struct TQ3DDSurfaceDescriptor TQ3DDSurfaceDescriptor;
+
+struct TQ3DDSurfaceDrawContextData {
+ TQ3DrawContextData drawContextData;
+ TQ3DDSurfaceDescriptor ddSurfaceDescriptor;
+};
+typedef struct TQ3DDSurfaceDrawContextData TQ3DDSurfaceDrawContextData;
+
+#endif /* !defined(QD3D_NO_DIRECTDRAW) */
+
+/******************************************************************************
+ ** **
+ ** Win32DC DrawContext Routines **
+ ** **
+ *****************************************************************************/
+#if CALL_NOT_IN_CARBON
+/*
+ * Q3Win32DCDrawContext_New()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3DrawContextObject )
+Q3Win32DCDrawContext_New(const TQ3Win32DCDrawContextData * drawContextData);
+
+
+/*
+ * Q3Win32DCDrawContext_SetDC()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3Win32DCDrawContext_SetDC(
+ TQ3DrawContextObject drawContext,
+ HDC newHDC);
+
+
+/*
+ * Q3Win32DCDrawContext_GetDC()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3Win32DCDrawContext_GetDC(
+ TQ3DrawContextObject drawContext,
+ HDC * curHDC);
+
+
+/******************************************************************************
+ ** **
+ ** DDSurface DrawContext Routines **
+ ** **
+ *****************************************************************************/
+#endif /* CALL_NOT_IN_CARBON */
+
+#ifndef QD3D_NO_DIRECTDRAW
+#if CALL_NOT_IN_CARBON
+/*
+ * Q3DDSurfaceDrawContext_New()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3DrawContextObject )
+Q3DDSurfaceDrawContext_New(const TQ3DDSurfaceDrawContextData * drawContextData);
+
+
+/*
+ * Q3DDSurfaceDrawContext_SetDirectDrawSurface()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3DDSurfaceDrawContext_SetDirectDrawSurface(
+ TQ3DrawContextObject drawContext,
+ const TQ3DDSurfaceDescriptor * ddSurfaceDescriptor);
+
+
+/*
+ * Q3DDSurfaceDrawContext_GetDirectDrawSurface()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3DDSurfaceDrawContext_GetDirectDrawSurface(
+ TQ3DrawContextObject drawContext,
+ TQ3DDSurfaceDescriptor * ddSurfaceDescriptor);
+
+
+#endif /* CALL_NOT_IN_CARBON */
+
+#endif /* !defined(QD3D_NO_DIRECTDRAW) */
+
+#endif /* TARGET_OS_WIN32 */
+
+
+
+
+
+#if PRAGMA_ENUM_ALWAYSINT
+ #pragma enumsalwaysint reset
+ #ifdef __QD3DDRAWCONTEXT__RESTORE_TWOBYTEINTS
+ #pragma fourbyteints off
+ #endif
+#elif PRAGMA_ENUM_OPTIONS
+ #pragma option enum=reset
+#elif defined(__QD3DDRAWCONTEXT__RESTORE_PACKED_ENUMS)
+ #pragma options(pack_enums)
+#endif
+
+#if PRAGMA_STRUCT_ALIGN
+ #pragma options align=reset
+#elif PRAGMA_STRUCT_PACKPUSH
+ #pragma pack(pop)
+#elif PRAGMA_STRUCT_PACK
+ #pragma pack()
+#endif
+
+#ifdef PRAGMA_IMPORT_OFF
+#pragma import off
+#elif PRAGMA_IMPORT
+#pragma import reset
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __QD3DDRAWCONTEXT__ */
+