You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
944 lines
26 KiB
944 lines
26 KiB
5 years ago
|
/*
|
||
|
File: QD3DView.h
|
||
|
|
||
|
Contains: View types and routines
|
||
|
|
||
|
Version: Technology: Quickdraw 3D 1.6
|
||
|
Release: QuickTime 7.3
|
||
|
|
||
|
Copyright: (c) 2007 (c) 1995-1998 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 __QD3DVIEW__
|
||
|
#define __QD3DVIEW__
|
||
|
|
||
|
#ifndef __QD3D__
|
||
|
#include <QD3D.h>
|
||
|
#endif
|
||
|
|
||
|
|
||
|
#ifndef __QD3DSTYLE__
|
||
|
#include <QD3DStyle.h>
|
||
|
#endif
|
||
|
|
||
|
#ifndef __QD3DSET__
|
||
|
#include <QD3DSet.h>
|
||
|
#endif
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
#if PRAGMA_ONCE
|
||
|
#pragma once
|
||
|
#endif
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
|
||
|
#if PRAGMA_IMPORT
|
||
|
#pragma import on
|
||
|
#endif
|
||
|
|
||
|
#if PRAGMA_ENUM_ALWAYSINT
|
||
|
#if defined(__fourbyteints__) && !__fourbyteints__
|
||
|
#define __QD3DVIEW__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 __QD3DVIEW__RESTORE_PACKED_ENUMS
|
||
|
#pragma options(!pack_enums)
|
||
|
#endif
|
||
|
#endif
|
||
|
|
||
|
/******************************************************************************
|
||
|
** **
|
||
|
** View Type Definitions **
|
||
|
** **
|
||
|
*****************************************************************************/
|
||
|
enum TQ3ViewStatus {
|
||
|
kQ3ViewStatusDone = 0,
|
||
|
kQ3ViewStatusRetraverse = 1,
|
||
|
kQ3ViewStatusError = 2,
|
||
|
kQ3ViewStatusCancelled = 3
|
||
|
};
|
||
|
typedef enum TQ3ViewStatus TQ3ViewStatus;
|
||
|
|
||
|
|
||
|
/******************************************************************************
|
||
|
** **
|
||
|
** Default Attribute Set **
|
||
|
** **
|
||
|
*****************************************************************************/
|
||
|
#define kQ3ViewDefaultAmbientCoefficient 1.0
|
||
|
#define kQ3ViewDefaultDiffuseColor 1.0, 1.0, 1.0
|
||
|
#define kQ3ViewDefaultSpecularColor 0.5, 0.5, 0.5
|
||
|
#define kQ3ViewDefaultSpecularControl 4.0
|
||
|
#define kQ3ViewDefaultTransparency 1.0, 1.0, 1.0
|
||
|
#define kQ3ViewDefaultHighlightState kQ3Off
|
||
|
#define kQ3ViewDefaultHighlightColor 1.0, 0.0, 0.0
|
||
|
#define kQ3ViewDefaultSubdivisionMethod kQ3SubdivisionMethodScreenSpace
|
||
|
#define kQ3ViewDefaultSubdivisionC1 20.0
|
||
|
#define kQ3ViewDefaultSubdivisionC2 20.0
|
||
|
|
||
|
/******************************************************************************
|
||
|
** **
|
||
|
** View Routines **
|
||
|
** **
|
||
|
*****************************************************************************/
|
||
|
#if CALL_NOT_IN_CARBON
|
||
|
/*
|
||
|
* Q3View_New()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3ViewObject )
|
||
|
Q3View_New(void);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3View_Cancel()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3View_Cancel(TQ3ViewObject view);
|
||
|
|
||
|
|
||
|
/******************************************************************************
|
||
|
** **
|
||
|
** View Rendering routines **
|
||
|
** **
|
||
|
*****************************************************************************/
|
||
|
/*
|
||
|
* Q3View_SetRendererByType()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3View_SetRendererByType(
|
||
|
TQ3ViewObject view,
|
||
|
TQ3ObjectType theType);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3View_SetRenderer()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3View_SetRenderer(
|
||
|
TQ3ViewObject view,
|
||
|
TQ3RendererObject renderer);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3View_GetRenderer()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3View_GetRenderer(
|
||
|
TQ3ViewObject view,
|
||
|
TQ3RendererObject * renderer);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3View_StartRendering()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3View_StartRendering(TQ3ViewObject view);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3View_EndRendering()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3ViewStatus )
|
||
|
Q3View_EndRendering(TQ3ViewObject view);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3View_Flush()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3View_Flush(TQ3ViewObject view);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3View_Sync()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3View_Sync(TQ3ViewObject view);
|
||
|
|
||
|
|
||
|
|
||
|
/******************************************************************************
|
||
|
** **
|
||
|
** View/Bounds/Pick routines **
|
||
|
** **
|
||
|
*****************************************************************************/
|
||
|
/*
|
||
|
* Q3View_StartBoundingBox()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3View_StartBoundingBox(
|
||
|
TQ3ViewObject view,
|
||
|
TQ3ComputeBounds computeBounds);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3View_EndBoundingBox()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3ViewStatus )
|
||
|
Q3View_EndBoundingBox(
|
||
|
TQ3ViewObject view,
|
||
|
TQ3BoundingBox * result);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3View_StartBoundingSphere()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3View_StartBoundingSphere(
|
||
|
TQ3ViewObject view,
|
||
|
TQ3ComputeBounds computeBounds);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3View_EndBoundingSphere()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3ViewStatus )
|
||
|
Q3View_EndBoundingSphere(
|
||
|
TQ3ViewObject view,
|
||
|
TQ3BoundingSphere * result);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3View_StartPicking()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3View_StartPicking(
|
||
|
TQ3ViewObject view,
|
||
|
TQ3PickObject pick);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3View_EndPicking()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3ViewStatus )
|
||
|
Q3View_EndPicking(TQ3ViewObject view);
|
||
|
|
||
|
|
||
|
|
||
|
/******************************************************************************
|
||
|
** **
|
||
|
** View/Camera routines **
|
||
|
** **
|
||
|
*****************************************************************************/
|
||
|
/*
|
||
|
* Q3View_GetCamera()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3View_GetCamera(
|
||
|
TQ3ViewObject view,
|
||
|
TQ3CameraObject * camera);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3View_SetCamera()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3View_SetCamera(
|
||
|
TQ3ViewObject view,
|
||
|
TQ3CameraObject camera);
|
||
|
|
||
|
|
||
|
|
||
|
/******************************************************************************
|
||
|
** **
|
||
|
** View/Lights routines **
|
||
|
** **
|
||
|
*****************************************************************************/
|
||
|
/*
|
||
|
* Q3View_SetLightGroup()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3View_SetLightGroup(
|
||
|
TQ3ViewObject view,
|
||
|
TQ3GroupObject lightGroup);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3View_GetLightGroup()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3View_GetLightGroup(
|
||
|
TQ3ViewObject view,
|
||
|
TQ3GroupObject * lightGroup);
|
||
|
|
||
|
|
||
|
|
||
|
/******************************************************************************
|
||
|
** **
|
||
|
** Idle Method **
|
||
|
** **
|
||
|
*****************************************************************************/
|
||
|
/*
|
||
|
* The idle methods allow the application to register callback routines
|
||
|
* which will be called by the view during especially long operations.
|
||
|
*
|
||
|
* The idle methods may also be used to interrupt long renderings or
|
||
|
* traversals. Inside the idler callback the application can check for
|
||
|
* Command-Period, Control-C or clicking a "Cancel" button or whatever else
|
||
|
* may be used to let the user interrupt rendering.
|
||
|
*
|
||
|
* It is NOT LEGAL to call QD3D routines inside an idler callback.
|
||
|
*
|
||
|
* Return kQ3Failure to cancel rendering, kQ3Success to continue. Don't
|
||
|
* bother posting an error.
|
||
|
*
|
||
|
* Q3View_SetIdleMethod registers a callback that can be called
|
||
|
* by the system during rendering. Unfortunately there is no way yet
|
||
|
* to set timer intervals when you want to be called. Basically, it is
|
||
|
* up to the application's idler callback to check clocks to see if you
|
||
|
* were called back only a millisecond ago or an hour ago!
|
||
|
*
|
||
|
* Q3View_SetIdleProgressMethod registers a callback that also gives
|
||
|
* progress information. This information is supplied by the renderer, and
|
||
|
* may or may not be based on real time.
|
||
|
*
|
||
|
* If a renderer doesn't support the progress method, your method will be
|
||
|
* called with current == 0 and completed == 0.
|
||
|
*
|
||
|
* Otherwise, you are GUARANTEED to get called at least 2 or more times:
|
||
|
*
|
||
|
* ONCE idleMethod(view, 0, n) -> Initialize, Show Dialog
|
||
|
* zero or more idleMethod(view, 1..n-1, n) -> Update progress
|
||
|
* ONCE idleMethod(view, n, n) -> Exit, Hide Dialog
|
||
|
*
|
||
|
* "current" is guaranteed to be less than or equal to "completed"
|
||
|
* "completed" may change values, but current/complete always indicates
|
||
|
* the degree of completion.
|
||
|
*
|
||
|
* The calling conventions aid in managing any data associated with a
|
||
|
* progress user interface indicator.
|
||
|
*/
|
||
|
#endif /* CALL_NOT_IN_CARBON */
|
||
|
|
||
|
typedef CALLBACK_API_C( TQ3Status , TQ3ViewIdleMethod )(TQ3ViewObject view, const void *idlerData);
|
||
|
typedef CALLBACK_API_C( TQ3Status , TQ3ViewIdleProgressMethod )(TQ3ViewObject view, const void *idlerData, unsigned long current, unsigned long completed);
|
||
|
#if CALL_NOT_IN_CARBON
|
||
|
/*
|
||
|
* Q3View_SetIdleMethod()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3View_SetIdleMethod(
|
||
|
TQ3ViewObject view,
|
||
|
TQ3ViewIdleMethod idleMethod,
|
||
|
const void * idleData);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3View_SetIdleProgressMethod()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3View_SetIdleProgressMethod(
|
||
|
TQ3ViewObject view,
|
||
|
TQ3ViewIdleProgressMethod idleMethod,
|
||
|
const void * idleData);
|
||
|
|
||
|
|
||
|
|
||
|
/******************************************************************************
|
||
|
** **
|
||
|
** EndFrame Method **
|
||
|
** **
|
||
|
*****************************************************************************/
|
||
|
/*
|
||
|
* The end frame method is an alternate way of determining when an
|
||
|
* asynchronous renderer has completed rendering a frame. It differs from
|
||
|
* Q3View_Sync in that notification of the frame completion is the opposite
|
||
|
* direction.
|
||
|
*
|
||
|
* With Q3View_Sync the application asks a renderer to finish rendering
|
||
|
* a frame, and blocks until the frame is complete.
|
||
|
*
|
||
|
* With the EndFrame method, the renderer tells the application that is has
|
||
|
* completed a frame.
|
||
|
*
|
||
|
* If "Q3View_Sync" is called BEFORE this method has been called, this
|
||
|
* method will NOT be called ever.
|
||
|
*
|
||
|
* If "Q3View_Sync" is called AFTER this method has been called, the
|
||
|
* call will return immediately (as the frame has already been completed).
|
||
|
*/
|
||
|
#endif /* CALL_NOT_IN_CARBON */
|
||
|
|
||
|
typedef CALLBACK_API_C( void , TQ3ViewEndFrameMethod )(TQ3ViewObject view, void *endFrameData);
|
||
|
#if CALL_NOT_IN_CARBON
|
||
|
/*
|
||
|
* Q3View_SetEndFrameMethod()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3View_SetEndFrameMethod(
|
||
|
TQ3ViewObject view,
|
||
|
TQ3ViewEndFrameMethod endFrame,
|
||
|
void * endFrameData);
|
||
|
|
||
|
|
||
|
|
||
|
/******************************************************************************
|
||
|
** **
|
||
|
** Push/Pop routines **
|
||
|
** **
|
||
|
*****************************************************************************/
|
||
|
/*
|
||
|
* Q3Push_Submit()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3Push_Submit(TQ3ViewObject view);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3Pop_Submit()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3Pop_Submit(TQ3ViewObject view);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3Push_New()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3StateOperatorObject )
|
||
|
Q3Push_New(void);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3Pop_New()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3StateOperatorObject )
|
||
|
Q3Pop_New(void);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3StateOperator_Submit()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3StateOperator_Submit(
|
||
|
TQ3StateOperatorObject stateOperator,
|
||
|
TQ3ViewObject view);
|
||
|
|
||
|
|
||
|
|
||
|
/******************************************************************************
|
||
|
** **
|
||
|
** Check if bounding box is visible in the viewing frustum. Transforms **
|
||
|
** the bbox by the current local_to_world transformation matrix and **
|
||
|
** does a clip test to see if it lies in the viewing frustum. **
|
||
|
** This can be used by applications to cull out large chunks of scenes **
|
||
|
** that are not going to be visible. **
|
||
|
** **
|
||
|
** The default implementation is to always return kQ3True. Renderers **
|
||
|
** may override this routine however to do the checking. **
|
||
|
** **
|
||
|
*****************************************************************************/
|
||
|
/*
|
||
|
* Q3View_IsBoundingBoxVisible()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Boolean )
|
||
|
Q3View_IsBoundingBoxVisible(
|
||
|
TQ3ViewObject view,
|
||
|
const TQ3BoundingBox * bbox);
|
||
|
|
||
|
|
||
|
|
||
|
/******************************************************************************
|
||
|
** **
|
||
|
** Allows display groups to be culled if they are assigned bounding **
|
||
|
** boxes. **
|
||
|
** **
|
||
|
*****************************************************************************/
|
||
|
/*
|
||
|
* Q3View_AllowAllGroupCulling()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3View_AllowAllGroupCulling(
|
||
|
TQ3ViewObject view,
|
||
|
TQ3Boolean allowCulling);
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
/******************************************************************************
|
||
|
** **
|
||
|
** DrawContext routines **
|
||
|
** **
|
||
|
*****************************************************************************/
|
||
|
/*
|
||
|
* Q3View_SetDrawContext()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3View_SetDrawContext(
|
||
|
TQ3ViewObject view,
|
||
|
TQ3DrawContextObject drawContext);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3View_GetDrawContext()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3View_GetDrawContext(
|
||
|
TQ3ViewObject view,
|
||
|
TQ3DrawContextObject * drawContext);
|
||
|
|
||
|
|
||
|
|
||
|
/******************************************************************************
|
||
|
** **
|
||
|
** Graphics State routines **
|
||
|
** **
|
||
|
** The graphics state routines can only be called while rendering (ie. in **
|
||
|
** between calls to start and end rendering calls). If they are called **
|
||
|
** outside of a rendering loop, they will return with error. **
|
||
|
** **
|
||
|
*****************************************************************************/
|
||
|
/******************************************************************************
|
||
|
** **
|
||
|
** Transform routines **
|
||
|
** **
|
||
|
*****************************************************************************/
|
||
|
/*
|
||
|
* Q3View_GetLocalToWorldMatrixState()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3View_GetLocalToWorldMatrixState(
|
||
|
TQ3ViewObject view,
|
||
|
TQ3Matrix4x4 * matrix);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3View_GetWorldToFrustumMatrixState()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3View_GetWorldToFrustumMatrixState(
|
||
|
TQ3ViewObject view,
|
||
|
TQ3Matrix4x4 * matrix);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3View_GetFrustumToWindowMatrixState()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3View_GetFrustumToWindowMatrixState(
|
||
|
TQ3ViewObject view,
|
||
|
TQ3Matrix4x4 * matrix);
|
||
|
|
||
|
|
||
|
|
||
|
/******************************************************************************
|
||
|
** **
|
||
|
** Style state routines **
|
||
|
** **
|
||
|
*****************************************************************************/
|
||
|
/*
|
||
|
* Q3View_GetBackfacingStyleState()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3View_GetBackfacingStyleState(
|
||
|
TQ3ViewObject view,
|
||
|
TQ3BackfacingStyle * backfacingStyle);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3View_GetInterpolationStyleState()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3View_GetInterpolationStyleState(
|
||
|
TQ3ViewObject view,
|
||
|
TQ3InterpolationStyle * interpolationType);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3View_GetFillStyleState()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3View_GetFillStyleState(
|
||
|
TQ3ViewObject view,
|
||
|
TQ3FillStyle * fillStyle);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3View_GetHighlightStyleState()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3View_GetHighlightStyleState(
|
||
|
TQ3ViewObject view,
|
||
|
TQ3AttributeSet * highlightStyle);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3View_GetSubdivisionStyleState()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3View_GetSubdivisionStyleState(
|
||
|
TQ3ViewObject view,
|
||
|
TQ3SubdivisionStyleData * subdivisionStyle);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3View_GetOrientationStyleState()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3View_GetOrientationStyleState(
|
||
|
TQ3ViewObject view,
|
||
|
TQ3OrientationStyle * fontFacingDirectionStyle);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3View_GetReceiveShadowsStyleState()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3View_GetReceiveShadowsStyleState(
|
||
|
TQ3ViewObject view,
|
||
|
TQ3Boolean * receives);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3View_GetPickIDStyleState()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3View_GetPickIDStyleState(
|
||
|
TQ3ViewObject view,
|
||
|
unsigned long * pickIDStyle);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3View_GetPickPartsStyleState()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3View_GetPickPartsStyleState(
|
||
|
TQ3ViewObject view,
|
||
|
TQ3PickParts * pickPartsStyle);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3View_GetAntiAliasStyleState()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3View_GetAntiAliasStyleState(
|
||
|
TQ3ViewObject view,
|
||
|
TQ3AntiAliasStyleData * antiAliasData);
|
||
|
|
||
|
|
||
|
|
||
|
/******************************************************************************
|
||
|
** **
|
||
|
** Attribute state routines **
|
||
|
** **
|
||
|
*****************************************************************************/
|
||
|
/*
|
||
|
* Q3View_GetDefaultAttributeSet()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3View_GetDefaultAttributeSet(
|
||
|
TQ3ViewObject view,
|
||
|
TQ3AttributeSet * attributeSet);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3View_SetDefaultAttributeSet()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3View_SetDefaultAttributeSet(
|
||
|
TQ3ViewObject view,
|
||
|
TQ3AttributeSet attributeSet);
|
||
|
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3View_GetAttributeSetState()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3View_GetAttributeSetState(
|
||
|
TQ3ViewObject view,
|
||
|
TQ3AttributeSet * attributeSet);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3View_GetAttributeState()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3View_GetAttributeState(
|
||
|
TQ3ViewObject view,
|
||
|
TQ3AttributeType attributeType,
|
||
|
void * data);
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
#endif /* CALL_NOT_IN_CARBON */
|
||
|
|
||
|
|
||
|
#if PRAGMA_ENUM_ALWAYSINT
|
||
|
#pragma enumsalwaysint reset
|
||
|
#ifdef __QD3DVIEW__RESTORE_TWOBYTEINTS
|
||
|
#pragma fourbyteints off
|
||
|
#endif
|
||
|
#elif PRAGMA_ENUM_OPTIONS
|
||
|
#pragma option enum=reset
|
||
|
#elif defined(__QD3DVIEW__RESTORE_PACKED_ENUMS)
|
||
|
#pragma options(pack_enums)
|
||
|
#endif
|
||
|
|
||
|
#ifdef PRAGMA_IMPORT_OFF
|
||
|
#pragma import off
|
||
|
#elif PRAGMA_IMPORT
|
||
|
#pragma import reset
|
||
|
#endif
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#endif /* __QD3DVIEW__ */
|
||
|
|