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)