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)