QuesaRenderer.h


Discussion

Declares the Quesa renderer objects. It would not be unusual for a Quesa client program to use no function from this header except for Q3Renderer_NewFromType.

Functions


Q3InteractiveRenderer_CountRAVEDrawContexts


( TQ3Status ) Q3InteractiveRenderer_CountRAVEDrawContexts (
    TQ3RendererObject renderer,
    TQ3Uns32 *numRAVEContexts
);
Discussion

Count the RAVE contexts for the interactive renderer.

Note - this function is deprecated, and is not fully supported in Quesa.

Parameter Descriptions
renderer
The renderer to query.
numRAVEContexts
Receives the number of RAVE contexts.
function result
Success or failure of the operation.

Q3InteractiveRenderer_GetCSGEquation


( TQ3Status ) Q3InteractiveRenderer_GetCSGEquation (
    TQ3RendererObject renderer,
    TQ3CSGEquation *equation
);
Discussion

Get the CSG equation from the interactive renderer.

Note - this function is deprecated, and is not fully supported in Quesa.

Parameter Descriptions
renderer
The renderer to query.
equation
Receives the CSG equation.
function result
Success or failure of the operation.

Q3InteractiveRenderer_GetDoubleBufferBypass


( TQ3Status ) Q3InteractiveRenderer_GetDoubleBufferBypass (
    TQ3RendererObject renderer,
    TQ3Boolean *bypass
);
Discussion

Get the double-buffer bypass hint from the interactive renderer.

Note - this function is deprecated, and is not fully supported in Quesa.

Parameter Descriptions
renderer
The renderer to query.
bypass
Receives the double-buffer bypass hint.
function result
Success or failure of the operation.

Q3InteractiveRenderer_GetPreferences


( TQ3Status ) Q3InteractiveRenderer_GetPreferences (
    TQ3RendererObject renderer,
    TQ3RaveVendorID *vendorID,
    TQ3RaveEngineID *engineID
);
Discussion

Get the RAVE preferences from the interactive renderer.

Note - this function is deprecated, and is not fully supported in Quesa.

Parameter Descriptions
renderer
The renderer to query.
vendorID
Receives the RAVE vendor ID.
engineID
Receives the RAVE engine ID.
function result
Success or failure of the operation.

Q3InteractiveRenderer_GetRAVEContextHints


( TQ3Status ) Q3InteractiveRenderer_GetRAVEContextHints (
    TQ3RendererObject renderer,
    TQ3Uns32 *RAVEContextHints
);
Discussion

Get the RAVE context hints from the interactive renderer.

Note - this function is deprecated, and is not fully supported in Quesa.

Parameter Descriptions
renderer
The renderer to query.
RAVEContextHints
Receives the RAVE context hints.
function result
Success or failure of the operation.

Q3InteractiveRenderer_GetRAVEDrawContexts


( TQ3Status ) Q3InteractiveRenderer_GetRAVEDrawContexts (
    TQ3RendererObject renderer,
    TQADrawContext **raveDrawContextList,
    TQAEngine **raveDrawingEnginesList,
    TQ3Uns32 *numRAVEContexts,
    TQ3RaveDestroyCallback raveDestroyCallback
);
Discussion

Get the RAVE contexts for the interactive renderer.

Note - this function is deprecated, and is not fully supported in Quesa.

Parameter Descriptions
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.
function result
Success or failure of the operation.

Q3InteractiveRenderer_GetRAVETextureFilter


( TQ3Status ) Q3InteractiveRenderer_GetRAVETextureFilter (
    TQ3RendererObject renderer,
    TQ3TextureFilter *raveTextureFilterValue
);
Discussion

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.

Parameter Descriptions
renderer
The renderer to query.
raveTextureFilterValue
Receives the RAVE texture filter.
function result
Success or failure of the operation.

Q3InteractiveRenderer_SetCSGEquation


( TQ3Status ) Q3InteractiveRenderer_SetCSGEquation (
    TQ3RendererObject renderer,
    TQ3CSGEquation equation
);
Discussion

Set the CSG equation for the interactive renderer.

Note - this function is deprecated, and is not fully supported in Quesa.

Parameter Descriptions
renderer
The renderer to update.
equation
The new CSG equation.
function result
Success or failure of the operation.

Q3InteractiveRenderer_SetDoubleBufferBypass


( TQ3Status ) Q3InteractiveRenderer_SetDoubleBufferBypass (
    TQ3RendererObject renderer,
    TQ3Boolean bypass
);
Discussion

Set the double-buffer bypass hint for the interactive renderer.

Note - this function is deprecated, and is not fully supported in Quesa.

Parameter Descriptions
renderer
The renderer to update.
bypass
The double-buffer bypass hint.
function result
Success or failure of the operation.

Q3InteractiveRenderer_SetPreferences


( TQ3Status ) Q3InteractiveRenderer_SetPreferences (
    TQ3RendererObject renderer,
    TQ3RaveVendorID vendorID,
    TQ3RaveEngineID engineID
);
Discussion

Set the RAVE preferences for the interactive renderer.

Note - this function is deprecated, and is not fully supported in Quesa.

Parameter Descriptions
renderer
The renderer to update.
vendorID
The new RAVE vendor ID.
engineID
The new RAVE engine ID.
function result
Success or failure of the operation.

Q3InteractiveRenderer_SetRAVEContextHints


( TQ3Status ) Q3InteractiveRenderer_SetRAVEContextHints (
    TQ3RendererObject renderer,
    TQ3Uns32 RAVEContextHints
);
Discussion

Set the RAVE context hints for the interactive renderer.

Note - this function is deprecated, and is not fully supported in Quesa.

Parameter Descriptions
renderer
The renderer to update.
RAVEContextHints
The RAVE context hints.
function result
Success or failure of the operation.

Q3InteractiveRenderer_SetRAVETextureFilter


( TQ3Status ) Q3InteractiveRenderer_SetRAVETextureFilter (
    TQ3RendererObject renderer,
    TQ3TextureFilter raveTextureFilterValue
);
Discussion

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.

Parameter Descriptions
renderer
The renderer to update.
raveTextureFilterValue
The RAVE texture filter.
function result
Success or failure of the operation.

Q3RendererClass_GetNickNameString


( TQ3Status ) Q3RendererClass_GetNickNameString (
    TQ3ObjectType rendererClassType,
    TQ3ObjectClassNameString rendererClassString
);
Discussion

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.

Parameter Descriptions
rendererClassType
The class type of the renderer to query.
rendererClassString
Receives the nick name of the renderer.
function result
Success or failure of the operation.

Q3Renderer_GetConfigurationData


( TQ3Status ) Q3Renderer_GetConfigurationData (
    TQ3RendererObject renderer,
    unsigned char *dataBuffer,
    TQ3Uns32 bufferSize,
    TQ3Uns32 *actualDataSize
);
Discussion

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.

Parameter Descriptions
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.
function result
Success or failure of the operation.

Q3Renderer_GetType


( TQ3ObjectType ) Q3Renderer_GetType (
    TQ3RendererObject renderer
);
Discussion

Get the class type of a renderer object.

Parameter Descriptions
renderer
The renderer to query.
function result
The type of the renderer.

Q3Renderer_HasModalConfigure


( TQ3Boolean ) Q3Renderer_HasModalConfigure (
    TQ3RendererObject renderer
);
Discussion

Does a renderer have a modal configure dialog?

Parameter Descriptions
renderer
The renderer to query.
function result
Does the renderer have a modal configure dialog?

Q3Renderer_IsInteractive


( TQ3Boolean ) Q3Renderer_IsInteractive (
    TQ3RendererObject renderer
);
Discussion

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.

Parameter Descriptions
renderer
The renderer to query.
function result
Is the renderer interactive?

Q3Renderer_ModalConfigure


( TQ3Status ) Q3Renderer_ModalConfigure (
    TQ3RendererObject renderer,
    TQ3DialogAnchor dialogAnchor,
    TQ3Boolean *cancelled
);
Discussion

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.

Parameter Descriptions
theRenderer
The renderer whose configure dialog is to be displayed.
dialogAnchor
Platform-specific dialog data.
cancelled
Receives the OK/Cancel state of the dialog.
function result
Success or failure of the operation.

Q3Renderer_NewFromType


( TQ3RendererObject ) Q3Renderer_NewFromType (
    TQ3ObjectType rendererObjectType
);
Discussion

Instantiate a new renderer by type.

The built-in renderer types include:



One can also get a complete list of installed renderer types by calling Q3ObjectHierarchy_GetSubClassData for the class kQ3SharedTypeRenderer, and get the human-readable names of the renderer types using Q3RendererClass_GetNickNameString.

Parameter Descriptions
rendererObjectType
The class type of the renderer to create.
function result
The new renderer object.

Q3Renderer_SetConfigurationData


( TQ3Status ) Q3Renderer_SetConfigurationData (
    TQ3RendererObject renderer,
    unsigned char *dataBuffer,
    TQ3Uns32 bufferSize
);
Discussion

Set the configuration data for a renderer.

The configuration must have been obtained with a previous call to Q3Renderer_GetConfigurationData.

Parameter Descriptions
renderer
The renderer to update.
dataBuffer
The configuration data for the renderer.
bufferSize
The number of bytes pointed to by dataBuffer.
function result
Success or failure of the operation.

Q3XDrawContext_ClearValidationFlags


( TQ3Status ) Q3XDrawContext_ClearValidationFlags (
    TQ3DrawContextObject drawContext
);
Discussion

Clear the validation flags for a draw context.

This function should only be called from renderer plug-ins.

Parameter Descriptions
drawContext
The draw context to update.
function result
Success or failure of the operation.

Q3XDrawContext_GetValidationFlags


( TQ3Status ) Q3XDrawContext_GetValidationFlags (
    TQ3DrawContextObject drawContext,
    TQ3XDrawContextValidation *validationFlags
);
Discussion

Get the validation flags for a draw context.

This function should only be called from renderer plug-ins.

Parameter Descriptions
drawContext
The draw context to query.
validationFlags
Receives the validation flags for a draw context.
function result
Success or failure of the operation.

Q3XView_EndFrame


( TQ3Status ) Q3XView_EndFrame (
    TQ3ViewObject view
);
Discussion

Indicate to a view that a frame has completed.

This function should only be called from asynchronous renderer plug-ins.

Parameter Descriptions
view
The view to notify.
function result
Success or failure of the operation.

Q3XView_IdleProgress


( TQ3Status ) Q3XView_IdleProgress (
    TQ3ViewObject view,
    TQ3Uns32 current,
    TQ3Uns32 completed
);
Discussion

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.

Parameter Descriptions
view
The view to notify.
current
The amount of work performed so far.
completed
The total amount of work which will be performed.
function result
Success or failure of the operation.

Typedefs


TQ3MacOSDialogEventHandler


typedef Q3_CALLBACK_API_C (TQ3Boolean, TQ3MacOSDialogEventHandler) (
    const EventRecord *theEvent
);

Discussion

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.

Parameter Descriptions
theEvent
The event to process.
function result
Did the application handle the event.

TQ3RaveDestroyCallback


typedef Q3_CALLBACK_API_C (void, TQ3RaveDestroyCallback) (
    TQ3RendererObject theRenderer
);

Discussion

RAVE destroy callback.

Not supported in Quesa.

Parameter Descriptions
theRenderer
The renderer being destroyed.

TQ3XRendererCancelMethod


typedef Q3_CALLBACK_API_C (void, TQ3XRendererCancelMethod) (
    TQ3ViewObject theView,
    void *rendererPrivate
);

Discussion

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.

Parameter Descriptions
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
);

Discussion

Invoked by Q3View_Sync via Q3View_EndRendering to end the current frame.

This method is optional and should only be implemented by asynchronous renderers.

Parameter Descriptions
theView
The view being rendered to.
rendererPrivate
Renderer-specific instance data.
theDrawContext
The draw context associated with the view.
function result
Success or failure of the callback.

TQ3XRendererEndPassMethod


typedef Q3_CALLBACK_API_C (TQ3ViewStatus, TQ3XRendererEndPassMethod) (
    TQ3ViewObject theView,
    void *rendererPrivate
);

Discussion

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.

Parameter Descriptions
theView
The view being rendered to.
rendererPrivate
Renderer-specific instance data.
function result
The result for the view submit loop.

TQ3XRendererFlushFrameMethod


typedef Q3_CALLBACK_API_C (TQ3Status, TQ3XRendererFlushFrameMethod) (
    TQ3ViewObject theView,
    void *rendererPrivate,
    TQ3DrawContextObject theDrawContext
);

Discussion

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.

Parameter Descriptions
theView
The view being rendered to.
rendererPrivate
Renderer-specific instance data.
theDrawContext
The draw context associated with the view.
function result
Success or failure of the callback.

TQ3XRendererGetConfigurationDataMethod


typedef Q3_CALLBACK_API_C (TQ3Status, TQ3XRendererGetConfigurationDataMethod) (
    TQ3RendererObject theRenderer,
    unsigned char *dataBuffer,
    TQ3Uns32 bufferSize,
    TQ3Uns32 *actualDataSize,
    void *rendererPrivate
);

Discussion

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.

Parameter Descriptions
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.
function result
Success or failure of the callback.

TQ3XRendererGetNickNameStringMethod


typedef Q3_CALLBACK_API_C (TQ3Status, TQ3XRendererGetNickNameStringMethod) (
    unsigned char *dataBuffer,
    TQ3Uns32 bufferSize,
    TQ3Uns32 *actualDataSize
);

Discussion

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.

Parameter Descriptions
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.
function result
Success or failure of the callback.

TQ3XRendererIsBoundingBoxVisibleMethod


Test a local-coordinate bounding box for visibility.

typedef Q3_CALLBACK_API_C (TQ3Boolean, TQ3XRendererIsBoundingBoxVisibleMethod) (
    TQ3ViewObject theView,
    void *rendererPrivate,
    const TQ3BoundingBox *theBounds
);

Discussion

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.

Parameter Descriptions
theView
The view being rendered to.
rendererPrivate
Renderer-specific instance data.
theBounds
The local bounding box to test.
function result
The visibility of the bounding box.

TQ3XRendererModalConfigureMethod


typedef Q3_CALLBACK_API_C (TQ3Status, TQ3XRendererModalConfigureMethod) (
    TQ3RendererObject theRenderer,
    TQ3DialogAnchor dialogAnchor,
    TQ3Boolean *wasCancelled,
    void *rendererPrivate
);

Discussion

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.

Parameter Descriptions
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.
function result
Success or failure of the callback.

TQ3XRendererPopMethod


typedef Q3_CALLBACK_API_C (TQ3Status, TQ3XRendererPopMethod) (
    TQ3ViewObject theView,
    void *rendererPrivate
);

Discussion

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.

Parameter Descriptions
theView
The view being rendered to.
rendererPrivate
Renderer-specific instance data.
function result
Success or failure of the callback.

TQ3XRendererPushMethod


typedef Q3_CALLBACK_API_C (TQ3Status, TQ3XRendererPushMethod) (
    TQ3ViewObject theView,
    void *rendererPrivate
);

Discussion

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.

Parameter Descriptions
theView
The view being rendered to.
rendererPrivate
Renderer-specific instance data.
function result
Success or failure of the callback.

TQ3XRendererSetConfigurationDataMethod


typedef Q3_CALLBACK_API_C (TQ3Status, TQ3XRendererSetConfigurationDataMethod) (
    TQ3RendererObject theRenderer,
    unsigned char *dataBuffer,
    TQ3Uns32 bufferSize,
    void *rendererPrivate
);

Discussion

Set the renderer configuration data.

This method is optional.

Parameter Descriptions
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.
function result
Success or failure of the callback.

TQ3XRendererStartFrameMethod


typedef Q3_CALLBACK_API_C (TQ3Status, TQ3XRendererStartFrameMethod) (
    TQ3ViewObject theView,
    void *rendererPrivate,
    TQ3DrawContextObject theDrawContext
);

Discussion

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.

Parameter Descriptions
theView
The view being rendered to.
rendererPrivate
Renderer-specific instance data.
theDrawContext
The draw context associated with the view.
function result
Success or failure of the callback.

TQ3XRendererStartPassMethod


typedef Q3_CALLBACK_API_C (TQ3Status, TQ3XRendererStartPassMethod) (
    TQ3ViewObject theView,
    void *rendererPrivate,
    TQ3CameraObject theCamera,
    TQ3GroupObject theLights
);

Discussion

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.

Parameter Descriptions
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.
function result
Success or failure of the callback.

TQ3XRendererSubmitCameraMetaHandlerMethod


typedef Q3_CALLBACK_API_C (TQ3XFunctionPointer, TQ3XRendererSubmitCameraMetaHandlerMethod) (
    TQ3ObjectType cameraType
);

Discussion

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.

Parameter Descriptions
cameraType
The camera type whose submit method is requested.
function result
The submit method for cameras of type cameraType.

TQ3XRendererSubmitCameraMethod


typedef Q3_CALLBACK_API_C (TQ3Status, TQ3XRendererSubmitCameraMethod) (
    TQ3ViewObject theView,
    void *rendererPrivate,
    TQ3CameraObject theCamera,
    const void *publicData
);

Discussion

Submits a camera object for rendering.

Note that the camera used for rendering is also passed to the StartPass method.

This method is required.

Parameter Descriptions
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.
function result
Success or failure of the callback.

TQ3XRendererSubmitGeometryMetaHandlerMethod


typedef Q3_CALLBACK_API_C (TQ3XFunctionPointer, TQ3XRendererSubmitGeometryMetaHandlerMethod) (
    TQ3ObjectType geometryType
);

Discussion

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.

Parameter Descriptions
geometryType
The geometry type whose submit method is requested.
function result
The submit method for geometries of type geometryType.

TQ3XRendererSubmitGeometryMethod


typedef Q3_CALLBACK_API_C (TQ3Status, TQ3XRendererSubmitGeometryMethod) (
    TQ3ViewObject theView,
    void *rendererPrivate,
    TQ3GeometryObject theGeometry,
    const void *publicData
);

Discussion

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.

Parameter Descriptions
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.
function result
Success or failure of the callback.

TQ3XRendererSubmitLightMetaHandlerMethod


typedef Q3_CALLBACK_API_C (TQ3XFunctionPointer, TQ3XRendererSubmitLightMetaHandlerMethod) (
    TQ3ObjectType lightType
);

Discussion

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.

Parameter Descriptions
cameraType
The camera type whose submit method is requested.
function result
The submit method for cameras of type cameraType.

TQ3XRendererSubmitLightMethod


typedef Q3_CALLBACK_API_C (TQ3Status, TQ3XRendererSubmitLightMethod) (
    TQ3ViewObject theView,
    void *rendererPrivate,
    TQ3LightObject theLight,
    const void *publicData
);

Discussion

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.

Parameter Descriptions
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.
function result
Success or failure of the callback.

TQ3XRendererUpdateAttributeMetaHandlerMethod


typedef Q3_CALLBACK_API_C (TQ3XFunctionPointer, TQ3XRendererUpdateAttributeMetaHandlerMethod) (
    TQ3AttributeType attributeType
);

Discussion

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.

Parameter Descriptions
attributeType
The attribute type whose update method is requested.
function result
The update method for attributes of type attributeType.

TQ3XRendererUpdateAttributeMethod


typedef Q3_CALLBACK_API_C (TQ3Status, TQ3XRendererUpdateAttributeMethod) (
    TQ3ViewObject theView,
    void *rendererPrivate,
    const void *publicData
);

Discussion

Update the the state of an attribute while rendering.

This method is optional.

Parameter Descriptions
theView
The view being rendered to.
rendererPrivate
Renderer-specific instance data.
publicData
The public data for the attribute being submitted.
function result
Success or failure of the callback.

TQ3XRendererUpdateMatrixMetaHandlerMethod


typedef Q3_CALLBACK_API_C (TQ3XFunctionPointer, TQ3XRendererUpdateMatrixMetaHandlerMethod) (
    TQ3ObjectType matrixType
);

Discussion

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.

Parameter Descriptions
matrixType
The matrix type whose update method is requested.
function result
The update method for matrices of type matrixType.

TQ3XRendererUpdateMatrixMethod


typedef Q3_CALLBACK_API_C (TQ3Status, TQ3XRendererUpdateMatrixMethod) (
    TQ3ViewObject theView,
    void *rendererPrivate,
    const TQ3Matrix4x4 *theMatrix
);

Discussion

Update the the state of a matrix while rendering.

This method is optional.

Parameter Descriptions
theView
The view being rendered to.
rendererPrivate
Renderer-specific instance data.
publicData
The public data for the matrix being submitted.
function result
Success or failure of the callback.

TQ3XRendererUpdateShaderMetaHandlerMethod


typedef Q3_CALLBACK_API_C (TQ3XFunctionPointer, TQ3XRendererUpdateShaderMetaHandlerMethod) (
    TQ3ObjectType shaderType
);

Discussion

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.

Parameter Descriptions
shaderType
The shader type whose update method is requested.
function result
The update method for shaders of type shaderType.

TQ3XRendererUpdateShaderMethod


typedef Q3_CALLBACK_API_C (TQ3Status, TQ3XRendererUpdateShaderMethod) (
    TQ3ViewObject theView,
    void *rendererPrivate,
    TQ3Object *theShader
);

Discussion

Update the the state of a shader while rendering.

This method is optional.

Parameter Descriptions
theView
The view being rendered to.
rendererPrivate
Renderer-specific instance data.
publicData
The public data for the shader being submitted.
function result
Success or failure of the callback.

TQ3XRendererUpdateStyleMetaHandlerMethod


typedef Q3_CALLBACK_API_C (TQ3XFunctionPointer, TQ3XRendererUpdateStyleMetaHandlerMethod) (
    TQ3ObjectType styleType
);

Discussion

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.

Parameter Descriptions
styleType
The style type whose update method is requested.
function result
The update method for styles of type styleType.

TQ3XRendererUpdateStyleMethod


typedef Q3_CALLBACK_API_C (TQ3Status, TQ3XRendererUpdateStyleMethod) (
    TQ3ViewObject theView,
    void *rendererPrivate,
    const void *publicData
);

Discussion

Update the the state of a style while rendering.

This method is optional.

Parameter Descriptions
theView
The view being rendered to.
rendererPrivate
Renderer-specific instance data.
publicData
The public data for the style being submitted.
function result
Success or failure of the callback.

Structs


TQ3DialogAnchor


typedef struct TQ3DialogAnchor {
    TQ3MacOSDialogEventHandler                  clientEventHandler;
} TQ3DialogAnchor;
Discussion

Mac OS dialog anchor.

Supplied to Q3Renderer_ModalConfigure to pass platform-specific dialog state to the renderer.

Field Descriptions
clientEventHandler
The application event handler.

TQ3DialogAnchor


typedef struct TQ3DialogAnchor {
    HWND                                        ownerWindow;
} TQ3DialogAnchor;
Discussion

Windows dialog anchor.

Supplied to Q3Renderer_ModalConfigure to pass platform-specific dialog state to the renderer.

Field Descriptions
ownerWindow
The parent window of the configure dialog.

TQ3DialogAnchor


typedef struct TQ3DialogAnchor {
    void                                        *notUsed;
} TQ3DialogAnchor;
Discussion

Unix dialog anchor.

Supplied to Q3Renderer_ModalConfigure to pass platform-specific dialog state to the renderer.

Field Descriptions
notUsed
Not used.

TQ3DialogAnchor


typedef struct TQ3DialogAnchor {
    void                                        *notUsed;
} TQ3DialogAnchor;
Discussion

Cocoa dialog anchor.

Supplied to Q3Renderer_ModalConfigure to pass platform-specific dialog state to the renderer.

Field Descriptions
notUsed
Not used.

Enumerations


Renderer Element Types


enum
{
  kQ3ElementTypeDepthBits          =  Q3_OBJECT_TYPE(0xF0, 'd', 'b', 'i')
};
Discussion

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 );


Constants

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


Object properties that may be set on renderers to indicate preferences.


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')
};
Discussion



Constants

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;
Discussion

CSG equations.

Constants

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;
Discussion

CSG object IDs.

Constants

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;
Discussion

RAVE engine IDs. Obsolete, but preserved for source compatibility.

Constants

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;
Discussion

RAVE vendor IDs. Obsolete, but preserved for source compatibility.

Constants

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;
Discussion

Texture filter type.

Constants

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;
Discussion

Draw Context validation mask flags.

Constants

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;
Discussion

Renderer method types.

Constants

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')
};
Discussion

CSG attribute.

The data for the attribute is a single TQ3CSGObjectID.

© 1999-2008 Quesa Developers (Last Updated 5/10/2008)