Q3Renderer_NewFromType.
Q3InteractiveRenderer_CountRAVEDrawContexts |
( TQ3Status ) Q3InteractiveRenderer_CountRAVEDrawContexts ( TQ3RendererObject renderer, TQ3Uns32 *numRAVEContexts );
Count the RAVE contexts for the interactive renderer.
Note - this function is deprecated, and is not fully supported in Quesa.
- renderer
- The renderer to query.
- numRAVEContexts
- Receives the number of RAVE contexts.
Q3InteractiveRenderer_GetCSGEquation |
( TQ3Status ) Q3InteractiveRenderer_GetCSGEquation ( TQ3RendererObject renderer, TQ3CSGEquation *equation );
Get the CSG equation from the interactive renderer.
Note - this function is deprecated, and is not fully supported in Quesa.
- renderer
- The renderer to query.
- equation
- Receives the CSG equation.
Q3InteractiveRenderer_GetDoubleBufferBypass |
( TQ3Status ) Q3InteractiveRenderer_GetDoubleBufferBypass ( TQ3RendererObject renderer, TQ3Boolean *bypass );
Get the double-buffer bypass hint from the interactive renderer.
Note - this function is deprecated, and is not fully supported in Quesa.
- renderer
- The renderer to query.
- bypass
- Receives the double-buffer bypass hint.
Q3InteractiveRenderer_GetPreferences |
( TQ3Status ) Q3InteractiveRenderer_GetPreferences ( TQ3RendererObject renderer, TQ3RaveVendorID *vendorID, TQ3RaveEngineID *engineID );
Get the RAVE preferences from the interactive renderer.
Note - this function is deprecated, and is not fully supported in Quesa.
- renderer
- The renderer to query.
- vendorID
- Receives the RAVE vendor ID.
- engineID
- Receives the RAVE engine ID.
Q3InteractiveRenderer_GetRAVEContextHints |
( TQ3Status ) Q3InteractiveRenderer_GetRAVEContextHints ( TQ3RendererObject renderer, TQ3Uns32 *RAVEContextHints );
Get the RAVE context hints from the interactive renderer.
Note - this function is deprecated, and is not fully supported in Quesa.
- renderer
- The renderer to query.
- RAVEContextHints
- Receives the RAVE context hints.
Q3InteractiveRenderer_GetRAVEDrawContexts |
( TQ3Status ) Q3InteractiveRenderer_GetRAVEDrawContexts ( TQ3RendererObject renderer, TQADrawContext **raveDrawContextList, TQAEngine **raveDrawingEnginesList, TQ3Uns32 *numRAVEContexts, TQ3RaveDestroyCallback raveDestroyCallback );
Get the RAVE contexts for the interactive renderer.
Note - this function is deprecated, and is not fully supported in Quesa.
- renderer
- The renderer to query.
- raveDrawContextList
- Receives the RAVE context list.
- raveDrawingEnginesList
- Receives the RAVE engine list.
- numRAVEContexts
- Receives the number of RAVE contexts.
- raveDestroyCallback
- The RAVE destroy callback.
Q3InteractiveRenderer_GetRAVETextureFilter |
( TQ3Status ) Q3InteractiveRenderer_GetRAVETextureFilter ( TQ3RendererObject renderer, TQ3TextureFilter *raveTextureFilterValue );
Get the RAVE texture filter from the interactive renderer.
Although Quesa does not actually use RAVE, the Interactive and OpenGL
renderers do use this filter to choose OpenGL texture filtering settings.
- renderer
- The renderer to query.
- raveTextureFilterValue
- Receives the RAVE texture filter.
Q3InteractiveRenderer_SetCSGEquation |
( TQ3Status ) Q3InteractiveRenderer_SetCSGEquation ( TQ3RendererObject renderer, TQ3CSGEquation equation );
Set the CSG equation for the interactive renderer.
Note - this function is deprecated, and is not fully supported in Quesa.
- renderer
- The renderer to update.
- equation
- The new CSG equation.
Q3InteractiveRenderer_SetDoubleBufferBypass |
( TQ3Status ) Q3InteractiveRenderer_SetDoubleBufferBypass ( TQ3RendererObject renderer, TQ3Boolean bypass );
Set the double-buffer bypass hint for the interactive renderer.
Note - this function is deprecated, and is not fully supported in Quesa.
- renderer
- The renderer to update.
- bypass
- The double-buffer bypass hint.
Q3InteractiveRenderer_SetPreferences |
( TQ3Status ) Q3InteractiveRenderer_SetPreferences ( TQ3RendererObject renderer, TQ3RaveVendorID vendorID, TQ3RaveEngineID engineID );
Set the RAVE preferences for the interactive renderer.
Note - this function is deprecated, and is not fully supported in Quesa.
- renderer
- The renderer to update.
- vendorID
- The new RAVE vendor ID.
- engineID
- The new RAVE engine ID.
Q3InteractiveRenderer_SetRAVEContextHints |
( TQ3Status ) Q3InteractiveRenderer_SetRAVEContextHints ( TQ3RendererObject renderer, TQ3Uns32 RAVEContextHints );
Set the RAVE context hints for the interactive renderer.
Note - this function is deprecated, and is not fully supported in Quesa.
- renderer
- The renderer to update.
- RAVEContextHints
- The RAVE context hints.
Q3InteractiveRenderer_SetRAVETextureFilter |
( TQ3Status ) Q3InteractiveRenderer_SetRAVETextureFilter ( TQ3RendererObject renderer, TQ3TextureFilter raveTextureFilterValue );
Set the RAVE texture filter for the interactive renderer.
Although Quesa does not actually use RAVE, the Interactive and OpenGL
renderers do use this filter to choose OpenGL texture filtering settings.
- renderer
- The renderer to update.
- raveTextureFilterValue
- The RAVE texture filter.
Q3RendererClass_GetNickNameString |
( TQ3Status ) Q3RendererClass_GetNickNameString ( TQ3ObjectType rendererClassType, TQ3ObjectClassNameString rendererClassString );
Get the "nick name" of a renderer class.
The "nick name" is the user-visible name for the renderer, and is
suitable for display in a menu or window.
- rendererClassType
- The class type of the renderer to query.
- rendererClassString
- Receives the nick name of the renderer.
Q3Renderer_GetConfigurationData |
( TQ3Status ) Q3Renderer_GetConfigurationData ( TQ3RendererObject renderer, unsigned char *dataBuffer, TQ3Uns32 bufferSize, TQ3Uns32 *actualDataSize );
Get the configuration data for a renderer.
Configuration data should be saved by the application in a manner appropriate
for the current platform (e.g., the Registry on Windows or a .plist file on
the Mac), tagging it with the renderer's type for later identification.
If dataBuffer is NULL, the size of data required to store the configuration
data will be returned in actualDataSize.
Otherwise bufferSize should be set to the number of bytes pointed to by
dataBuffer, and actualDataSize will receive the number of bytes written to
dataBuffer.
- renderer
- The renderer to query.
- dataBuffer
- Receives the renderer configuration data. May be NULL.
- bufferSize
- The number of bytes pointed to by dataBuffer. May be 0.
- actualDataSize
- Receives the number of bytes required for, or written to, dataBuffer.
Q3Renderer_GetType |
( TQ3ObjectType ) Q3Renderer_GetType ( TQ3RendererObject renderer );
Get the class type of a renderer object.
- renderer
- The renderer to query.
Q3Renderer_HasModalConfigure |
( TQ3Boolean ) Q3Renderer_HasModalConfigure ( TQ3RendererObject renderer );
Does a renderer have a modal configure dialog?
- renderer
- The renderer to query.
Q3Renderer_IsInteractive |
( TQ3Boolean ) Q3Renderer_IsInteractive ( TQ3RendererObject renderer );
Is a renderer "interactive"?
An interactive renderer should be able to render frames at a more or less
interactive rate, allowing the user to manipulate the renderer in real-time.
Typically, renderers using hardware-acceleration would report as interactive
while software-based renderers (e.g., ray-tracers) would not.
- renderer
- The renderer to query.
Q3Renderer_ModalConfigure |
( TQ3Status ) Q3Renderer_ModalConfigure ( TQ3RendererObject renderer, TQ3DialogAnchor dialogAnchor, TQ3Boolean *cancelled );
Invoke a renderer's modal configure dialog.
If the renderer provides a user interface for adjusting its preferences,
a modal configure dialog can be displayed by this function.
The cancel/accept state of the dialog is returned through the cancelled
parameter.
After a configure dialog has been accepted, the current preferences
should be retrieved with Q3Renderer_GetConfigurationData and stored by
the application for later recall.
- theRenderer
- The renderer whose configure dialog is to be displayed.
- dialogAnchor
- Platform-specific dialog data.
- cancelled
- Receives the OK/Cancel state of the dialog.
Q3Renderer_NewFromType |
( TQ3RendererObject ) Q3Renderer_NewFromType ( TQ3ObjectType rendererObjectType );
Instantiate a new renderer by type.
The built-in renderer types include:
Q3ObjectHierarchy_GetSubClassData for the class
kQ3SharedTypeRenderer, and get the human-readable names of the renderer
types using Q3RendererClass_GetNickNameString.
- rendererObjectType
- The class type of the renderer to create.
Q3Renderer_SetConfigurationData |
( TQ3Status ) Q3Renderer_SetConfigurationData ( TQ3RendererObject renderer, unsigned char *dataBuffer, TQ3Uns32 bufferSize );
Set the configuration data for a renderer.
The configuration must have been obtained with a previous call to
Q3Renderer_GetConfigurationData.
- renderer
- The renderer to update.
- dataBuffer
- The configuration data for the renderer.
- bufferSize
- The number of bytes pointed to by dataBuffer.
Q3XDrawContext_ClearValidationFlags |
( TQ3Status ) Q3XDrawContext_ClearValidationFlags ( TQ3DrawContextObject drawContext );
Clear the validation flags for a draw context.
This function should only be called from renderer plug-ins.
- drawContext
- The draw context to update.
Q3XDrawContext_GetValidationFlags |
( TQ3Status ) Q3XDrawContext_GetValidationFlags ( TQ3DrawContextObject drawContext, TQ3XDrawContextValidation *validationFlags );
Get the validation flags for a draw context.
This function should only be called from renderer plug-ins.
- drawContext
- The draw context to query.
- validationFlags
- Receives the validation flags for a draw context.
Q3XView_EndFrame |
( TQ3Status ) Q3XView_EndFrame ( TQ3ViewObject view );
Indicate to a view that a frame has completed.
This function should only be called from asynchronous renderer plug-ins.
- view
- The view to notify.
Q3XView_IdleProgress |
( TQ3Status ) Q3XView_IdleProgress ( TQ3ViewObject view, TQ3Uns32 current, TQ3Uns32 completed );
Update the view's idle state while rendering.
Allows non-interactive renderers to update the view with their progress.
Progress should be passed as:
0% (theView, 0, maxValue);
..% (theView, 1 to maxValue-1, maxValue);
100% (theView, maxValue, maxValue);
Progress will be passed to the application callbacks registered with
Q3View_SetIdleMethod or Q3View_SetIdleProgressMethod.
This function should only be called from renderer plug-ins.
- view
- The view to notify.
- current
- The amount of work performed so far.
- completed
- The total amount of work which will be performed.
TQ3MacOSDialogEventHandler |
typedef Q3_CALLBACK_API_C (TQ3Boolean, TQ3MacOSDialogEventHandler) (
const EventRecord *theEvent
);
Mac OS application event callback.
Modal renderer configure dialogs invoke this callback with events
which are not handled by the dialog. If the application handles
the event it should return kQ3True, or kQ3False to have the dialog
pass the event to the system unhandled.
- theEvent
- The event to process.
TQ3RaveDestroyCallback |
typedef Q3_CALLBACK_API_C (void, TQ3RaveDestroyCallback) (
TQ3RendererObject theRenderer
);
RAVE destroy callback.
Not supported in Quesa.
- theRenderer
- The renderer being destroyed.
TQ3XRendererCancelMethod |
typedef Q3_CALLBACK_API_C (void, TQ3XRendererCancelMethod) (
TQ3ViewObject theView,
void *rendererPrivate
);
Cancel the current rendering frame.
This method is invoked if a frame is cancelled within a rendering loop,
and allows renderers to clean up as the current render is terminated.
This method is required.
- theView
- The view being rendered to.
- rendererPrivate
- Renderer-specific instance data.
TQ3XRendererEndFrameMethod |
typedef Q3_CALLBACK_API_C (TQ3Status, TQ3XRendererEndFrameMethod) (
TQ3ViewObject theView,
void *rendererPrivate,
TQ3DrawContextObject theDrawContext
);
Invoked by Q3View_Sync via Q3View_EndRendering to end the current frame.
This method is optional and should only be implemented by asynchronous renderers.
- theView
- The view being rendered to.
- rendererPrivate
- Renderer-specific instance data.
- theDrawContext
- The draw context associated with the view.
TQ3XRendererEndPassMethod |
typedef Q3_CALLBACK_API_C (TQ3ViewStatus, TQ3XRendererEndPassMethod) (
TQ3ViewObject theView,
void *rendererPrivate
);
Invoked by Q3View_EndRendering to end the current pass.
The renderer should return kQ3ViewStatusRetraverse if the view should
loop and submit another pass for the current frame, or kQ3ViewStatusDone
if the scene has been rendered successfully.
If rendering was cancelled, this method will not be called and the view
will return kQ3ViewStatusCancelled to the application.
This method is required.
- theView
- The view being rendered to.
- rendererPrivate
- Renderer-specific instance data.
TQ3XRendererFlushFrameMethod |
typedef Q3_CALLBACK_API_C (TQ3Status, TQ3XRendererFlushFrameMethod) (
TQ3ViewObject theView,
void *rendererPrivate,
TQ3DrawContextObject theDrawContext
);
Invoked by Q3View_Flush to flush rendering.
The renderer should flush the rendering of objects which have been submitted
so far, and produce an image from the currently accumulated drawing state.
This method is optional and should only be implemented by asynchronous renderers.
- theView
- The view being rendered to.
- rendererPrivate
- Renderer-specific instance data.
- theDrawContext
- The draw context associated with the view.
TQ3XRendererGetConfigurationDataMethod |
typedef Q3_CALLBACK_API_C (TQ3Status, TQ3XRendererGetConfigurationDataMethod) (
TQ3RendererObject theRenderer,
unsigned char *dataBuffer,
TQ3Uns32 bufferSize,
TQ3Uns32 *actualDataSize,
void *rendererPrivate
);
Get the renderer configuration data.
If dataBuffer is NULL, actualDataSize returns the size in bytes of a buffer
which could receive the renderer data.
This method is optional.
- theRenderer
- The renderer object.
- dataBuffer
- Buffer to receive the renderer configuration data.
- bufferSize
- The number of bytes pointed to by dataBuffer.
- actualDataSize
- Receives the number of bytes written to dataBuffer.
- rendererPrivate
- Renderer-specific instance data.
TQ3XRendererGetNickNameStringMethod |
typedef Q3_CALLBACK_API_C (TQ3Status, TQ3XRendererGetNickNameStringMethod) (
unsigned char *dataBuffer,
TQ3Uns32 bufferSize,
TQ3Uns32 *actualDataSize
);
Get the renderer "nick name".
The "nick name" is the user-visible name for the renderer, and should be
suitable for display in a menu or window (e.g., it may need to be localised
for the current language).
If dataBuffer is NULL, actualDataSize returns the size in bytes of a buffer
which could receive the entire renderer nick name.
This method is optional.
- dataBuffer
- Buffer to receive the renderer nick name.
- bufferSize
- The number of bytes pointed to by dataBuffer.
- actualDataSize
- Receives the number of bytes written to dataBuffer.
TQ3XRendererIsBoundingBoxVisibleMethod |
typedef Q3_CALLBACK_API_C (TQ3Boolean, TQ3XRendererIsBoundingBoxVisibleMethod) (
TQ3ViewObject theView,
void *rendererPrivate,
const TQ3BoundingBox *theBounds
);
Renderers should return a TQ3Boolean indicating whether the bounding
box would affect the current rendering pass. This method is used for
group culling.
This may simply require testing for intersection with the view frustum,
as with Q3View_IsBoundingBoxVisible. Some renderers may
require more complex tests. For instance, in some cases, an object
outside the view frustum might contribute to the scene by reflections.
In other cases, an object might be within the view frustum and yet not
contribute to a lighting pass, due to being beyond the reach of the
light.
This method is optional. If it is not supplied, Quesa will behave as
if the method returned true.
- theView
- The view being rendered to.
- rendererPrivate
- Renderer-specific instance data.
- theBounds
- The local bounding box to test.
TQ3XRendererModalConfigureMethod |
typedef Q3_CALLBACK_API_C (TQ3Status, TQ3XRendererModalConfigureMethod) (
TQ3RendererObject theRenderer,
TQ3DialogAnchor dialogAnchor,
TQ3Boolean *wasCancelled,
void *rendererPrivate
);
Display a modal configure dialog for the renderer.
If the renderer provides a user interface for adjusting its preferences,
a modal configure dialog can be displayed by this method.
The dialog should contain OK and Cancel buttons, and return the selected
button through the wasCancelled parameter.
This method is optional.
- theRenderer
- The renderer whose configure dialog is to be displayed.
- dialogAnchor
- Platform-specific dialog data.
- wasCancelled
- Receives the OK/Cancel state of the dialog.
- rendererPrivate
- Renderer-specific instance data.
TQ3XRendererPopMethod |
typedef Q3_CALLBACK_API_C (TQ3Status, TQ3XRendererPopMethod) (
TQ3ViewObject theView,
void *rendererPrivate
);
Pop the current renderer state.
Renderers which implement the RendererPush/RendererPop methods must
maintain their own view state stack while rendering. If a renderer
does not supply these methods, Quesa will automatically send the
required state changes to implement a push/pop operation.
This method is optional.
- theView
- The view being rendered to.
- rendererPrivate
- Renderer-specific instance data.
TQ3XRendererPushMethod |
typedef Q3_CALLBACK_API_C (TQ3Status, TQ3XRendererPushMethod) (
TQ3ViewObject theView,
void *rendererPrivate
);
Push the current renderer state.
Renderers which implement the RendererPush/RendererPop methods must
maintain their own view state stack while rendering. If a renderer
does not supply these methods, Quesa will automatically send the
required state changes to implement a push/pop operation.
This method is optional.
- theView
- The view being rendered to.
- rendererPrivate
- Renderer-specific instance data.
TQ3XRendererSetConfigurationDataMethod |
typedef Q3_CALLBACK_API_C (TQ3Status, TQ3XRendererSetConfigurationDataMethod) (
TQ3RendererObject theRenderer,
unsigned char *dataBuffer,
TQ3Uns32 bufferSize,
void *rendererPrivate
);
Set the renderer configuration data.
This method is optional.
- theRenderer
- The renderer object.
- dataBuffer
- Buffer containing the renderer configuration data.
- bufferSize
- The number of bytes pointed to by dataBuffer.
- rendererPrivate
- Renderer-specific instance data.
TQ3XRendererStartFrameMethod |
typedef Q3_CALLBACK_API_C (TQ3Status, TQ3XRendererStartFrameMethod) (
TQ3ViewObject theView,
void *rendererPrivate,
TQ3DrawContextObject theDrawContext
);
Invoked by Q3View_StartRendering to start a new frame.
The renderer should prepare to render another frame. This may require
the initialisation of per-frame state, and the clearing of the draw
context (depending on the draw context's clear method).
This method is required.
- theView
- The view being rendered to.
- rendererPrivate
- Renderer-specific instance data.
- theDrawContext
- The draw context associated with the view.
TQ3XRendererStartPassMethod |
typedef Q3_CALLBACK_API_C (TQ3Status, TQ3XRendererStartPassMethod) (
TQ3ViewObject theView,
void *rendererPrivate,
TQ3CameraObject theCamera,
TQ3GroupObject theLights
);
Invoked by Q3View_StartRendering to start a new pass.
The renderer should prepare to render another pass of the current frame.
This may require the initialisation of per-pass state, and setting up
the renderer's camera and light representations for rendering.
This method is required.
- theView
- The view being rendered to.
- rendererPrivate
- Renderer-specific instance data.
- theCamera
- The camera associated with the view.
- theLights
- The light group associated with the view.
TQ3XRendererSubmitCameraMetaHandlerMethod |
typedef Q3_CALLBACK_API_C (TQ3XFunctionPointer, TQ3XRendererSubmitCameraMetaHandlerMethod) (
TQ3ObjectType cameraType
);
Return the submit method for a camera type.
Renderers should return a TQ3XRendererSubmitCameraMethod to be invoked when
a camera of the supplied type is used for rendering.
This method is optional.
- cameraType
- The camera type whose submit method is requested.
TQ3XRendererSubmitCameraMethod |
typedef Q3_CALLBACK_API_C (TQ3Status, TQ3XRendererSubmitCameraMethod) (
TQ3ViewObject theView,
void *rendererPrivate,
TQ3CameraObject theCamera,
const void *publicData
);
Submits a camera object for rendering.
Note that the camera used for rendering is also passed to the
StartPass method.
This method is required.
- theView
- The view being rendered to.
- rendererPrivate
- Renderer-specific instance data.
- theCamera
- The camera object being submitted, or NULL.
- publicData
- The public data for the camera being submitted.
TQ3XRendererSubmitGeometryMetaHandlerMethod |
typedef Q3_CALLBACK_API_C (TQ3XFunctionPointer, TQ3XRendererSubmitGeometryMetaHandlerMethod) (
TQ3ObjectType geometryType
);
Return the submit method for a geometry type.
Renderers should return a TQ3XRendererSubmitGeometryMetaHandlerMethod to
be invoked when a geometry of the supplied type is submitted for rendering.
If a particular geometry type is not supported, return NULL.
Geometries which do not have their own submit method will be decomposed to
more primitive geometry types, which will then be submitted as one of the
following types (which all renderers must support):
kQ3GeometryTypeTriangle
kQ3GeometryTypeLine
kQ3GeometryTypePoint
kQ3GeometryTypeMarker
kQ3GeometryTypePixmapMarker
This method is required.
- geometryType
- The geometry type whose submit method is requested.
TQ3XRendererSubmitGeometryMethod |
typedef Q3_CALLBACK_API_C (TQ3Status, TQ3XRendererSubmitGeometryMethod) (
TQ3ViewObject theView,
void *rendererPrivate,
TQ3GeometryObject theGeometry,
const void *publicData
);
Submits a geometry object for rendering.
If a geometry object is submitted in retained mode, theGeometry will be
a valid geometry object and publicData will point to the public data
structure describing that object.
If a geometry is submitted in immediate mode, theGeometry will be NULL
and publicData will point to the data structure submitted for rendering.
Renderers should therefore try and render from the data contained in the
publicData structure, however a reference to the geometry object may be
useful (and can be retained if necessary, provided it is later released)
in some circumstances.
This method is required.
- theView
- The view being rendered to.
- rendererPrivate
- Renderer-specific instance data.
- theGeometry
- The geometry object being submitted, or NULL.
- publicData
- The public data for the geometry being submitted.
TQ3XRendererSubmitLightMetaHandlerMethod |
typedef Q3_CALLBACK_API_C (TQ3XFunctionPointer, TQ3XRendererSubmitLightMetaHandlerMethod) (
TQ3ObjectType lightType
);
Return the submit method for a light type.
Renderers should return a TQ3XRendererSubmitLightMethod to be invoked when
a light of the supplied type is used for rendering.
This method is optional.
- cameraType
- The camera type whose submit method is requested.
TQ3XRendererSubmitLightMethod |
typedef Q3_CALLBACK_API_C (TQ3Status, TQ3XRendererSubmitLightMethod) (
TQ3ViewObject theView,
void *rendererPrivate,
TQ3LightObject theLight,
const void *publicData
);
Submits a light object for rendering.
Note that the light group used for rendering is also passed to the
StartPass method.
This method is required.
- theView
- The view being rendered to.
- rendererPrivate
- Renderer-specific instance data.
- theLight
- The light object being submitted, or NULL.
- publicData
- The public data for the light being submitted.
TQ3XRendererUpdateAttributeMetaHandlerMethod |
typedef Q3_CALLBACK_API_C (TQ3XFunctionPointer, TQ3XRendererUpdateAttributeMetaHandlerMethod) (
TQ3AttributeType attributeType
);
Return the update method for an attribute type.
Renderers should return a TQ3XRendererUpdateAttributeMethod to be invoked when
the state of the supplied attribute type is changed while rendering.
This method is optional.
- attributeType
- The attribute type whose update method is requested.
TQ3XRendererUpdateAttributeMethod |
typedef Q3_CALLBACK_API_C (TQ3Status, TQ3XRendererUpdateAttributeMethod) (
TQ3ViewObject theView,
void *rendererPrivate,
const void *publicData
);
Update the the state of an attribute while rendering.
This method is optional.
- theView
- The view being rendered to.
- rendererPrivate
- Renderer-specific instance data.
- publicData
- The public data for the attribute being submitted.
TQ3XRendererUpdateMatrixMetaHandlerMethod |
typedef Q3_CALLBACK_API_C (TQ3XFunctionPointer, TQ3XRendererUpdateMatrixMetaHandlerMethod) (
TQ3ObjectType matrixType
);
Return the update method for a matrix type.
Renderers should return a TQ3XRendererUpdateMatrixMethod to be invoked when
the state of the supplied matrix type is changed while rendering.
This method is optional.
- matrixType
- The matrix type whose update method is requested.
TQ3XRendererUpdateMatrixMethod |
typedef Q3_CALLBACK_API_C (TQ3Status, TQ3XRendererUpdateMatrixMethod) (
TQ3ViewObject theView,
void *rendererPrivate,
const TQ3Matrix4x4 *theMatrix
);
Update the the state of a matrix while rendering.
This method is optional.
- theView
- The view being rendered to.
- rendererPrivate
- Renderer-specific instance data.
- publicData
- The public data for the matrix being submitted.
TQ3XRendererUpdateShaderMetaHandlerMethod |
typedef Q3_CALLBACK_API_C (TQ3XFunctionPointer, TQ3XRendererUpdateShaderMetaHandlerMethod) (
TQ3ObjectType shaderType
);
Return the update method for a shader type.
Renderers should return a TQ3XRendererUpdateShaderMethod to be invoked when
the state of the supplied shader type is changed while rendering.
This method is optional.
- shaderType
- The shader type whose update method is requested.
TQ3XRendererUpdateShaderMethod |
typedef Q3_CALLBACK_API_C (TQ3Status, TQ3XRendererUpdateShaderMethod) (
TQ3ViewObject theView,
void *rendererPrivate,
TQ3Object *theShader
);
Update the the state of a shader while rendering.
This method is optional.
- theView
- The view being rendered to.
- rendererPrivate
- Renderer-specific instance data.
- publicData
- The public data for the shader being submitted.
TQ3XRendererUpdateStyleMetaHandlerMethod |
typedef Q3_CALLBACK_API_C (TQ3XFunctionPointer, TQ3XRendererUpdateStyleMetaHandlerMethod) (
TQ3ObjectType styleType
);
Return the update method for a style type.
Renderers should return a TQ3XRendererUpdateStyleMethod to be invoked when
the state of the supplied style type is changed while rendering.
This method is optional.
- styleType
- The style type whose update method is requested.
TQ3XRendererUpdateStyleMethod |
typedef Q3_CALLBACK_API_C (TQ3Status, TQ3XRendererUpdateStyleMethod) (
TQ3ViewObject theView,
void *rendererPrivate,
const void *publicData
);
Update the the state of a style while rendering.
This method is optional.
- theView
- The view being rendered to.
- rendererPrivate
- Renderer-specific instance data.
- publicData
- The public data for the style being submitted.
TQ3DialogAnchor |
typedef struct TQ3DialogAnchor {
TQ3MacOSDialogEventHandler clientEventHandler;
} TQ3DialogAnchor;
Mac OS dialog anchor.
Supplied to Q3Renderer_ModalConfigure to pass platform-specific
dialog state to the renderer.
- clientEventHandler
- The application event handler.
TQ3DialogAnchor |
typedef struct TQ3DialogAnchor {
HWND ownerWindow;
} TQ3DialogAnchor;
Windows dialog anchor.
Supplied to Q3Renderer_ModalConfigure to pass platform-specific
dialog state to the renderer.
- ownerWindow
- The parent window of the configure dialog.
TQ3DialogAnchor |
typedef struct TQ3DialogAnchor {
void *notUsed;
} TQ3DialogAnchor;
Unix dialog anchor.
Supplied to Q3Renderer_ModalConfigure to pass platform-specific
dialog state to the renderer.
- notUsed
- Not used.
TQ3DialogAnchor |
typedef struct TQ3DialogAnchor {
void *notUsed;
} TQ3DialogAnchor;
Cocoa dialog anchor.
Supplied to Q3Renderer_ModalConfigure to pass platform-specific
dialog state to the renderer.
- notUsed
- Not used.
Renderer Element Types |
enum
{
kQ3ElementTypeDepthBits = Q3_OBJECT_TYPE(0xF0, 'd', 'b', 'i')
};
These elements may be attached to renderer objects to inform a renderer of
preferences.
These elements are not available in QD3D.
Typical usage:
TQ3Uns32 depthBits = 32; Q3Object_AddElement( theRenderer, kQ3ElementTypeDepthBits, &depthBits );
- kQ3ElementTypeDepthBits
- Depth bits element type, which may be used to inform a renderer of a preferred bit depth for a depth buffer. Renderers that are not based on OpenGL will probably ignore this preference.
Renderer Property Types |
enum
{
kQ3RendererPropertyAutomaticTriangleStrips = Q3_OBJECT_TYPE('a', 't', 'r', 's'),
kQ3RendererPropertyPerPixelLighting = Q3_OBJECT_TYPE('p', 'p', 'x', 'l'),
kQ3RendererPropertyConvertToPremultipliedAlpha = Q3_OBJECT_TYPE('c', 'p', 'm', 'a'),
kQ3RendererPropertyShadows = Q3_OBJECT_TYPE('s', 'h', 'd', 'w'),
kQ3RendererPropertyAttenuationThreshold = Q3_OBJECT_TYPE('s', 'h', 'a', 't'),
kQ3RendererPropertyLineWidth = Q3_OBJECT_TYPE('l', 'n', 'w', 'h'),
kQ3RendererPropertyUseColor = Q3_OBJECT_TYPE('u', 'c', 'l', 'r'),
kQ3RendererPropertyAllowVBOs = Q3_OBJECT_TYPE('a', 'v', 'b', 'o'),
kQ3RendererPropertyAllowLineSmooth = Q3_OBJECT_TYPE('a', 'l', 's', 'm'),
kQ3RendererPropertyQuantizePerPixelLight = Q3_OBJECT_TYPE('p', 'p', 'x', 'q'),
kQ3RendererPropertyCartoonLightNearEdge = Q3_OBJECT_TYPE('p', 'p', 'c', 'e')
};
- kQ3RendererPropertyAutomaticTriangleStrips
- Whether a triangle strip should be automatically computed for a TriMesh that lacks one. Only used by the OpenGL renderer. Data type: TQ3Boolean. Default value: kQ3True.
- kQ3RendererPropertyPerPixelLighting
- Whether we should used per-pixel lighting if possible. Only implemented by the OpenGL renderer. Data type: TQ3Boolean. Default value: kQ3False.
- kQ3RendererPropertyConvertToPremultipliedAlpha
- Whether textures with alpha should be converted from non-premultiplied to premultiplied alpha when loaded into OpenGL. Implemented by Interactive and OpenGL renderers. Data type: TQ3Boolean. Default value: kQ3False.
- kQ3RendererPropertyShadows
- Whether we should attempt to produce shadows for lights that cast shadows. Only implemented by the OpenGL renderer. Data type: TQ3Boolean. Default value: kQ3False.
- kQ3RendererPropertyAttenuationThreshold
- A mesh will be culled from shadow passes for a positional light if the light's attenuated brightness is less than this value. Data type: TQ3Float32. Default value: Reciprocal of 2 to the number of bits per color component.
- kQ3RendererPropertyLineWidth
- Line width to be used in wire frame and hidden line renderers. Data type: TQ3Float32. Default value: 1.0.
- kQ3RendererPropertyUseColor
- in the Hiddenline Renderer - Whether the renderer has to fill color the geometries or leave them white. in the WireFrame Renderer - if the lines should follow the geometry color or draw them black Data type: TQ3Boolean. Default value: kQ3True.
- kQ3RendererPropertyAllowVBOs
- Allow the renderer to use vertex buffer objects provided that the OpenGL driver claims to support them. This could be used to disable VBO usage for buggy graphics drivers. Data type: TQ3Boolean. Default value: kQ3True.
- kQ3RendererPropertyAllowLineSmooth
- Allow an OpenGL-based renderer to enable GL_LINE_SMOOTH. This may be used to disable line smoothing for buggy graphics drivers, such as some versions of Apple's software renderer. Data type: TQ3Boolean. Default value: kQ3True.
- kQ3RendererPropertyQuantizePerPixelLight
- When used with per-pixel lighting, this rounds the light being applied to each pixel to certain values, producing a cartoonish look. More precisely, if the value q is provided here, each component c of the light will be replaced by the value floor( c * q ) / q, resulting in an integer multiple of 1/q. The greater the value of q, the more distinct shades are produced. A value less then or equal to 0.0 turns off quantization.
Data type: TQ3Float32. Default value: 0.0.- kQ3RendererPropertyCartoonLightNearEdge
- When used with quantized per-pixel lighting (see kQ3RendererPropertyQuantizePerPixelLight) this controls how much diffuse lighting is allowed to light triangles that are nearly perpendicular to the view vector.
Data type: TQ3Float32. Range: [0, 1]. Default value: 1.0.
TQ3CSGEquation |
typedef enum TQ3CSGEquation {
kQ3CSGEquationAandB = 0x88888888,
kQ3CSGEquationAandnotB = 0x22222222,
kQ3CSGEquationAanBonCad = 0x2F222F22,
kQ3CSGEquationnotAandB = 0x44444444,
kQ3CSGEquationnAaBorCanB = 0x74747474,
kQ3CSGEquationSize32 = 0xFFFFFFFF
} TQ3CSGEquation;
CSG equations.
- kQ3CSGEquationAandB
- Indicates A and B.
- kQ3CSGEquationAandnotB
- Indicates A and not B.
- kQ3CSGEquationAanBonCad
- Indicates A and B on C.
- kQ3CSGEquationnotAandB
- Indicates not A and B.
- kQ3CSGEquationnAaBorCanB
- Indicates not A and B or C and B.
TQ3CSGObjectID |
typedef enum TQ3CSGObjectID {
kQ3SolidGeometryObjNone = -1,
kQ3SolidGeometryObjA = 0,
kQ3SolidGeometryObjB = 1,
kQ3SolidGeometryObjC = 2,
kQ3SolidGeometryObjD = 3,
kQ3SolidGeometryObjE = 4,
kQ3SolidGeometrySize32 = 0x7FFFFFFF
} TQ3CSGObjectID;
CSG object IDs.
- kQ3SolidGeometryObjNone
- Indicates no object.
- kQ3SolidGeometryObjA
- Indicates the 'A' object.
- kQ3SolidGeometryObjB
- Indicates the 'B' object.
- kQ3SolidGeometryObjC
- Indicates the 'C' object.
- kQ3SolidGeometryObjD
- Indicates the 'D' object.
- kQ3SolidGeometryObjE
- Indicates the 'E' object.
TQ3RaveEngineID |
typedef enum TQ3RaveEngineID {
kQAEngine_AppleSW = 0,
kQAEngine_AppleHW = -1,
kQAEngine_AppleHW2 = 1,
kQAEngine_AppleHW3 = 2,
kQAEngine_Size32 = 0x7FFFFFFF
} TQ3RaveEngineID;
RAVE engine IDs. Obsolete, but preserved for source compatibility.
- kQAEngine_AppleSW
- Default software rasterizer.
- kQAEngine_AppleHW
- Apple accelerator.
- kQAEngine_AppleHW2
- Another Apple accelerator.
- kQAEngine_AppleHW3
- Yet another Apple accelerator.
TQ3RaveVendorID |
typedef enum TQ3RaveVendorID {
kQAVendor_BestChoice = -1,
kQAVendor_Apple = 0,
kQAVendor_ATI = 1,
kQAVendor_Radius = 2,
kQAVendor_DesignMark = 3,
kQAVendor_Matrox = 4,
kQAVendor_Yarc = 5,
kQAVendor_DiamondMM = 6,
kQAVendor_3DLabs = 7,
kQAVendor_D3DAdaptor = 8,
kQAVendor_IXMicro = 9,
kQAVendor_NumberNine = 10,
kQAVendor_MicroConversions = 11,
kQAVendor_PurpleShark = 12,
kQAVendor_VillageTronic = 14,
kQAVendor_Size32 = 0x7FFFFFFF
} TQ3RaveVendorID;
RAVE vendor IDs. Obsolete, but preserved for source compatibility.
- kQAVendor_BestChoice
- Selects the best choice for the target device.
- kQAVendor_Apple
- Apple.
- kQAVendor_ATI
- ATI.
- kQAVendor_Radius
- Radius.
- kQAVendor_DesignMark
- DesignMark.
- kQAVendor_Matrix
- Matrox.
- kQAVendor_Yarc
- Yarc.
- kQAVendor_DiamondMM
- Diamond.
- kQAVendor_3DLabs
- 3D Labs.
- kQAVendor_D3DAdaptor
- D3D shim.
- kQAVendor_IXMicro
- IXMicro.
- kQAVendor_NumberNine
- Number Nine.
- kQAVendor_MicroConversions
- MicroConversions.
- kQAVendor_PurpleShark
- Purple Shark D3D shim.
- kQAVendor_VillageTronic
- VillageTronic.
TQ3TextureFilter |
typedef enum TQ3TextureFilter {
kQATextureFilter_Fast = 0,
kQATextureFilter_Mid = 1,
kQATextureFilter_Best = 2,
kQATextureFilter_Size32 = 0xFFFFFFFF
} TQ3TextureFilter;
Texture filter type.
- kQATextureFilter_Fast
- Select nearest pixel.
- kQATextureFilter_Mid
- Perform basic filtering.
- kQATextureFilter_Best
- Perform high quality filtering.
TQ3XDrawContextValidationMasks |
typedef enum TQ3XDrawContextValidationMasks {
kQ3XDrawContextValidationClearFlags = 0,
kQ3XDrawContextValidationDoubleBuffer = (1 << 0),
kQ3XDrawContextValidationShader = (1 << 1),
kQ3XDrawContextValidationClearFunction = (1 << 2),
kQ3XDrawContextValidationActiveBuffer = (1 << 3),
kQ3XDrawContextValidationInternalOffScreen = (1 << 4),
kQ3XDrawContextValidationPane = (1 << 5),
kQ3XDrawContextValidationMask = (1 << 6),
kQ3XDrawContextValidationDevice = (1 << 7),
kQ3XDrawContextValidationWindow = (1 << 8),
kQ3XDrawContextValidationWindowSize = (1 << 9),
kQ3XDrawContextValidationWindowClip = (1 << 10),
kQ3XDrawContextValidationWindowPosition = (1 << 11),
kQ3XDrawContextValidationPlatformAttributes = (1 << 12),
kQ3XDrawContextValidationForegroundShader = (1 << 13),
kQ3XDrawContextValidationBackgroundShader = (1 << 14),
kQ3XDrawContextValidationColorPalette = (1 << 15),
kQ3XDrawContextValidationRAVETextureFilter = (1 << 16),
kQ3XDrawContextValidationDepthState = (1 << 17),
kQ3XDrawContextValidationAll = 0xFFFFFFFF,
kQ3XDrawContextValidationSize32 = 0xFFFFFFFF
} TQ3XDrawContextValidationMasks;
Draw Context validation mask flags.
- kQ3XDrawContextValidationClearFlags
- The draw context state is valid.
- kQ3XDrawContextValidationDoubleBuffer
- The double buffer state is invalid.
- kQ3XDrawContextValidationShader
- The shader state is invalid.
- kQ3XDrawContextValidationClearFunction
- The clear method state is invalid.
- kQ3XDrawContextValidationActiveBuffer
- The active buffer state is invalid.
- kQ3XDrawContextValidationInternalOffScreen
- The internal off-screen state is invalid.
- kQ3XDrawContextValidationPane
- The pane state is invalid.
- kQ3XDrawContextValidationMask
- The mask state is invalid.
- kQ3XDrawContextValidationDevice
- The device state is invalid.
- kQ3XDrawContextValidationWindow
- The window state is invalid.
- kQ3XDrawContextValidationWindowSize
- The window size state is invalid.
- kQ3XDrawContextValidationWindowClip
- The window clip state is invalid.
- kQ3XDrawContextValidationWindowPosition
- The window position state is invalid.
- kQ3XDrawContextValidationPlatformAttributes
- The platform-specific state is invalid.
- kQ3XDrawContextValidationForegroundShader
- The foreground shader state is invalid.
- kQ3XDrawContextValidationBackgroundShader
- The background shader state is invalid.
- kQ3XDrawContextValidationColorPalette
- The color palette state is invalid (unupported).
- kQ3XDrawContextValidationRAVETextureFilter
- The RAVE texture filter state is invalid (unupported).
- kQ3XDrawContextValidationDepthState
- The depth testing state (glDepthMask, glDepthFunc) is invalid.
- kQ3XDrawContextValidationAll
- The draw context state is invalid.
TQ3XMethodTypeRenderer |
typedef enum TQ3XMethodTypeRenderer {
kQ3XMethodTypeRendererIsInteractive = Q3_METHOD_TYPE('i', 's', 'i', 'n'),
kQ3XMethodTypeRendererModalConfigure = Q3_METHOD_TYPE('r', 'd', 'm', 'c'),
kQ3XMethodTypeRendererGetNickNameString = Q3_METHOD_TYPE('r', 'd', 'n', 's'),
kQ3XMethodTypeRendererGetConfigurationData = Q3_METHOD_TYPE('r', 'd', 'g', 'p'),
kQ3XMethodTypeRendererSetConfigurationData = Q3_METHOD_TYPE('r', 'd', 's', 'p'),
kQ3XMethodTypeRendererStartFrame = Q3_METHOD_TYPE('r', 'd', 'c', 'l'),
kQ3XMethodTypeRendererStartPass = Q3_METHOD_TYPE('r', 'd', 's', 't'),
kQ3XMethodTypeRendererFlushFrame = Q3_METHOD_TYPE('r', 'd', 'f', 'l'),
kQ3XMethodTypeRendererEndPass = Q3_METHOD_TYPE('r', 'd', 'e', 'd'),
kQ3XMethodTypeRendererEndFrame = Q3_METHOD_TYPE('r', 'd', 's', 'y'),
kQ3XMethodTypeRendererCancel = Q3_METHOD_TYPE('r', 'd', 'a', 'b'),
kQ3XMethodTypeRendererPush = Q3_METHOD_TYPE('r', 'd', 'p', 's'),
kQ3XMethodTypeRendererPop = Q3_METHOD_TYPE('r', 'd', 'p', 'o'),
kQ3XMethodTypeRendererIsBoundingBoxVisible = Q3_METHOD_TYPE('r', 'd', 'b', 'x'),
kQ3XMethodTypeRendererSubmitGeometryMetaHandler = Q3_METHOD_TYPE('r', 'd', 'g', 'm'),
kQ3XMethodTypeRendererSubmitCameraMetaHandler = Q3_METHOD_TYPE('r', 'd', 'c', 'm'),
kQ3XMethodTypeRendererSubmitLightMetaHandler = Q3_METHOD_TYPE('r', 'd', 'l', 'g'),
kQ3XMethodTypeRendererUpdateStyleMetaHandler = Q3_METHOD_TYPE('r', 'd', 'y', 'u'),
kQ3XMethodTypeRendererUpdateAttributeMetaHandler = Q3_METHOD_TYPE('r', 'd', 'a', 'u'),
kQ3XMethodTypeRendererUpdateShaderMetaHandler = Q3_METHOD_TYPE('r', 'd', 's', 'u'),
kQ3XMethodTypeRendererUpdateMatrixMetaHandler = Q3_METHOD_TYPE('r', 'd', 'x', 'u'),
kQ3XMethodTypeRendererUpdateMatrixLocalToWorld = Q3_METHOD_TYPE('u', 'l', 'w', 'x'),
kQ3XMethodTypeRendererUpdateMatrixLocalToWorldInverse = Q3_METHOD_TYPE('u', 'l', 'w', 'i'),
kQ3XMethodTypeRendererUpdateMatrixLocalToWorldInverseTranspose = Q3_METHOD_TYPE('u', 'l', 'w', 't'),
kQ3XMethodTypeRendererUpdateMatrixLocalToCamera = Q3_METHOD_TYPE('u', 'l', 'c', 'x'),
kQ3XMethodTypeRendererUpdateMatrixLocalToFrustum = Q3_METHOD_TYPE('u', 'l', 'f', 'x'),
kQ3XMethodTypeRendererUpdateMatrixWorldToCamera = Q3_METHOD_TYPE('u', 'w', 'c', 'x'),
#endif
kQ3XMethodTypeRendererUpdateMatrixWorldToFrustum = Q3_METHOD_TYPE('u', 'w', 'f', 'x'),
kQ3XMethodTypeRendererUpdateMatrixCameraToFrustum = Q3_METHOD_TYPE('u', 'c', 'f', 'x'),
#endif
kQ3XMethodTypeRendererSize32 = 0xFFFFFFFF
} TQ3XMethodTypeRenderer;
Renderer method types.
- kQ3XMethodTypeRendererIsInteractive
- Is the renderer interactive?
- kQ3XMethodTypeRendererModalConfigure
- Display a application-modal configure dialog.
- kQ3XMethodTypeRendererGetNickNameString
- Get the user-level renderer name.
- kQ3XMethodTypeRendererGetConfigurationData
- Get renderer configuration data.
- kQ3XMethodTypeRendererSetConfigurationData
- Set renderer configuration data.
- kQ3XMethodTypeRendererStartFrame
- Start a frame.
- kQ3XMethodTypeRendererStartPass
- Start a pass within a frame.
- kQ3XMethodTypeRendererFlushFrame
- Flush a frame.
- kQ3XMethodTypeRendererEndPass
- End a pass within a frame.
- kQ3XMethodTypeRendererEndFrame
- End a frame.
- kQ3XMethodTypeRendererCancel
- Cancel rendering.
- kQ3XMethodTypeRendererPush
- Push the renderer state.
- kQ3XMethodTypeRendererPop
- Pop the renderer state.
- kQ3XMethodTypeRendererIsBoundingBoxVisible
- Is a local-coordinate bounding box visible to the camera?
- kQ3XMethodTypeRendererSubmitGeometryMetaHandler
- Meta-handler for geometry methods.
- kQ3XMethodTypeRendererSubmitCameraMetaHandler
- Meta-handler for camera methods.
- kQ3XMethodTypeRendererSubmitLightMetaHandler
- Meta-handler for light methods.
- kQ3XMethodTypeRendererUpdateStyleMetaHandler
- Meta-handler for style methods.
- kQ3XMethodTypeRendererUpdateAttributeMetaHandler
- Meta-handler for attribute methods.
- kQ3XMethodTypeRendererUpdateShaderMetaHandler
- Meta-handler for shader methods.
- kQ3XMethodTypeRendererUpdateMatrixMetaHandler
- Meta-handler for matrix methods.
- kQ3XMethodTypeRendererUpdateMatrixLocalToWorld
- The local-to-world matrix state has changed.
- kQ3XMethodTypeRendererUpdateMatrixLocalToWorldInverse
- The inverse-local-to-world matrix state has changed.
- kQ3XMethodTypeRendererUpdateMatrixLocalToWorldInverseTranspose
- The inverse-transpose-local-to-world matrix state has changed.
- kQ3XMethodTypeRendererUpdateMatrixLocalToCamera
- The local-to-camera matrix state has changed.
- kQ3XMethodTypeRendererUpdateMatrixLocalToFrustum
- The local-to-frustum matrix state has changed.
- kQ3XMethodTypeRendererUpdateMatrixWorldToCamera
- The world-to-camera matrix state has changed. Not available in QD3D.
- kQ3XMethodTypeRendererUpdateMatrixWorldToFrustum
- The world-to-frustum matrix state has changed.
- kQ3XMethodTypeRendererUpdateMatrixCameraToFrustum
- The camera-to-frustum matrix state has changed. Not available in QD3D.
kQ3AttributeTypeConstructiveSolidGeometryID |
enum {
kQ3AttributeTypeConstructiveSolidGeometryID = Q3_METHOD_TYPE('c', 's', 'g', 'i')
};
CSG attribute.
The data for the attribute is a single TQ3CSGObjectID.
© 1999-2008 Quesa Developers (Last Updated 5/10/2008)