|
RwIm3DPS2AllBridgeCallBack is the RxPipelineNodePS2AllMatBridgeCallBack used in the default RenderWare RwIm3D render pipeline. See RxPipelineNodePS2AllMatBridgeCallBack for an overview of this callback type. For RwIm3D, this default callback is composed of the following helper macros (of which you may use either or both in constructing your own replacement callback), in the order shown here (you should keep the same order, as explained in RpMeshPS2AllStartVIFUploads): RpMeshPS2AllStartVIFUploads, RpMeshPS2AllGIFTagUpload, RpMeshPS2AllMatColUpload, RpMeshPS2AllSurfPropsUpload, RpMeshPS2AllClipInfoUpload, RpMeshPS2AllVU1CodeIndexSetup, RpMeshPS2AllVU1CodeUpload, RpMeshPS2AllEndVIFUploads Note that the only difference between this list and that of RpMeshPS2AllBridgeCallBack is the omission here of any texture setup. All renderstate persists through RwIm3D render calls, whereas RpAtomic or RpWorldSector render calls will change texture renderstate dependent on materials (RwIm3D does not use materials).
|
|
RwIm3DPS2AllFrustumTest is a macro to test RwIm3D geometry against the current camera's view frustum to determine if clipping is necessary. This is a helper macro which is called from the default RxPipelineNodePS2AllObjectSetupCallBack for RwIm3D, RwIm3DPS2AllObjectSetupCallBack. It simply checks whether the flags passed to RwIm3DTransform contained rwIM3D_NOCLIP or not. It may be used in constructing user callbacks. This macro will be a function in a debug build, but it may be used explicitly in macro form through the name RwIm3DPS2AllFrustumTestMacro and in function form through RwIm3DPS2AllFrustumTestFunc, depending on how you wish to balance code size and function call overheads.
|
|
RwIm3DPS2AllGatherMeshMetrics is a macro to gather metrics information on RwIm3D rendering. This is a helper macro which is called from the default RxPipelineNodePS2AllMatPostMeshCallBack for RwIm3D, RwIm3DPS2AllPostMeshCallBack. It gathers metrics information on the current RwIm3D render (though in non-RWMETRICS builds, the macro will boil away to nothing during compilation). Note that it currently only counts triangles, not other primitives. It may be used in constructing user callbacks. This macro will be a function in a debug build, but it may be used explicitly in macro form through the name RwIm3DPS2AllGatherMeshMetricsMacro and in function form through RwIm3DPS2AllGatherMeshMetricsFunc, depending on how you wish to balance code size and function call overheads.
|
|
RwIm3DPS2AllGatherObjMetrics is a macro to gather metrics information for RwIm3D rendering. This is a helper macro which is called from the default RxPipelineNodePS2AllObjectSetupCallBack for RwIm3D, RwIm3DPS2AllObjectSetupCallBack. It gathers metrics information from the current _rwIm3DPoolStash (though in non-RWMETRICS builds, the macro will boil away to nothing during compilation). It may be used in constructing user callbacks. This macro will be a function in a debug build, but it may be used explicitly in macro form through the name RwIm3DPS2AllGatherObjMetricsMacro and in function form through RwIm3DPS2AllGatherObjMetricsFunc, depending on how you wish to balance code size and function call overheads.
|
|
RwIm3DPS2AllGetMeshHeaderMeshCache is a macro to set up an RpMeshHeader and RwMeshCache for RwIm3D rendering. This is a helper macro which is called from the default RxPipelineNodePS2AllObjectSetupCallBack for RwIm3D, RwIm3DPS2AllObjectSetupCallBack. It fills in the meshHeader and meshCache fields of the RxPS2AllPipeData struct, using a fake, RpMaterial, RwMeshCache and RpMeshHeader to do so (since there are no such structures in RwIm3D rendering). It may be used in constructing user callbacks. This macro will be a function in a debug build, but it may be used explicitly in macro form through the name RpWorldSectorPS2AllGetMeshHeaderMeshCacheMacro and in function form through RpWorldSectorPS2AllGetMeshHeaderMeshCacheFunc, depending on how you wish to balance code size and function call overheads.
|
|
RwIm3DPS2AllInstance instances RwIm3D primitives.
|
|
RwIm3DPS2AllInstanceCallBack is the RxPipelineNodePS2AllMatInstanceCallBack used in the default RenderWare RwIm3D render pipeline. See RxPipelineNodePS2AllMatInstanceCallBack for an overview of this callback type. For RwIm3D, this default callback just calls RwIm3DPS2AllInstance, since no user instancing is performed.
|
|
RwIm3DPS2AllObjectSetupCallBack is the RxPipelineNodePS2AllObjectSetupCallBack used in the default RenderWare RwIm3D render pipeline. See RxPipelineNodePS2AllObjectSetupCallBack for an overview of this callback type. For RwIm3D, this default callback is composed of the following helper macros (of which you may use some or all to construct your own replacement callback), in the order shown here (try and keep this order, some macros rely on the results of prior ones):
|
|
RwIm3DPS2AllObjInstanceTest is a macro to ensure that full instancing occurs during RwIm3D rendering. This is a helper macro which is called from the default RxPipelineNodePS2AllObjectSetupCallBack for RwIm3D, RwIm3DPS2AllObjectSetupCallBack. It simply sets the objInstance identifier of the RxPS2AllPipeData struct to rxINSTANCEFULLINSTANCE, since full instancing must occur for every RwIm3D render. It may be used in constructing user callbacks. This macro will be a function in a debug build, but it may be used explicitly in macro form through the name RwIm3DPS2AllObjInstanceTestMacro and in function form through RwIm3DPS2AllObjInstanceTestFunc, depending on how you wish to balance code size and function call overheads.
|
|
RwIm3DPS2AllPostMeshCallBack is the RxPipelineNodePS2AllMatPostMeshCallBack used in the default RenderWare RwIm3D render pipeline. See RxPipelineNodePS2AllMatPostMeshCallBack for an overview of this callback type. For RwIm3D, this default callback (only actually used in RWMETRICS builds) is composed of the following helper macro (which you may use in constructing your own replacement callback):
|
|
RwIm3DPS2AllResEntryAlloc is a macro to allocate space for the instance data of RwIm3D rendering. This is a helper macro which is called from the default RxPipelineNodePS2AllMatResEntryAllocCallBack for RwIm3D, RwIm3DPS2AllResEntryAllocCallBack. It allocates the space required using an internal double buffer area (appropriate for RwIm3D because we know that the memory will be freed, after one use, in the order in which it is allocated), the maximum possible allocation size from which is half the value passed to _rwDMAPreAlloc() (the default value is 1MB - as an allocation nears half the maximum size, it is more likely to cause a buffer swap, which will slow the system down). It may be used in constructing user callbacks. This macro will be a function in a debug build, but it may be used explicitly in macro form through the name RwIm3DPS2AllResEntryAllocMacro and in function form through RwIm3DPS2AllResEntryAllocFunc, depending on how you wish to balance code size and function call overheads.
|
|
RwIm3DPS2AllResEntryAllocCallBack is the RxPipelineNodePS2AllMatResEntryAllocCallBack used in the default RenderWare RwIm3D render pipeline. See RxPipelineNodePS2AllMatResEntryAllocCallBack for an overview of this callback type. For RwIm3D, this default callback is composed of the following helper macro (which you may use in constructing your own replacement callback):
|
|
RwIm3DPS2AllTransformSetup is a macro to set up the transformation matrix for RwIm3D rendering. This is a helper macro which is called from the default RxPipelineNodePS2AllObjectSetupCallBack for RwIm3D, RwIm3DPS2AllObjectSetupCallBack. It concatenates the matrix passed to RwIm3DTransform (if none was passed, it uses the identity matrix) with the current camera's view matrix (see RwCameraGetViewMatrix) and stores the result in the matrix passed in. It may be used in constructing user callbacks. This macro will be a function in a debug build, but it may be used explicitly in macro form through the name RwIm3DPS2AllTransformSetupMacro and in function form through RwIm3DPS2AllTransformSetupFunc, depending on how you wish to balance code size and function call overheads.
|
|
|
RwIm3DSkyGetPS2AllRenderPipeline returns a pointer to the default immediate mode PS2All render pipeline. The PS2All (see RxNodeDefinitionGetPS2All) Im3D render pipeline for PlayStation 2 is shown below. The Im3D render pipelines (in fact one pipeline can render all supported primitive types except rwPRIMTYPEPOINTLIST for which you will need to supply your own vector code) are by default based on the PS2All.csl node. Note that this pipeline uses mesh grouping (see RxPipelineNodePS2AllGroupMeshes), which means that it always calls the same material pipeline - this can be retrieved through RwIm3DSkyGetPS2AllMatPipeline. Object pipelines (and we're treating an Im3D render pipeline as an object instance+render pipeline) based on PS2All.csl must be paired with material pipelines based on PS2AllMat.csl. See RxNodeDefinitionGetPS2All and RxNodeDefinitionGetPS2AllMat for further details. This pipeline is intended for use with the PS2All Im3D transform pipeline (see RwIm3DSkyGetPS2AllTransformPipeline). If you wish to submit 2D triangles through Submit.csl (i.e you want to do transformation and lighting and whatever else CPU-side - which will of course be very slow) then rather than use this Im3D transform pipeline, you should use a generic (non-PlayStation 2-specific) one. N.B. the PS2All Im3D transform pipe must be paired with PS2All render pipes and vice versa! Do not change one and not the other. The PS2All Im3D render pipeline (for all primitive types): PS2All.csl The callbacks used for the PS2All.csl node are: RwIm3DPS2AllObjectSetupCallBack (RxPipelineNodePS2AllObjectSetupCallBack)
|
|
RwIm3DSkyGetPS2AllTransformPipeline returns a pointer to the default immediate mode transform PS2All pipeline. The PS2All (see RxNodeDefinitionGetPS2All) Im3D transform pipeline does very little work, it just sets up a copy of the source vertices for the RwIm3DRender*() functions to work with and also caches the flags and transformation matrix. If you wish to submit 2D triangles through Submit.csl (i.e you want to do transformation and lighting and whatever else CPU-side - which will of course be very slow) then rather than use this Im3D transform pipeline, you should use a generic (non-PlayStation 2-specific) one. N.B. the PS2All Im3D transform pipe must be paired with PS2All render pipes and vice versa! Do not change one and not the other. The world plugin must be attached before using this function (for now, this is an RpWorld overload of the Im3D functionality, using RpWorld technology - PS2All.csl - to speed it up). The PS2All Im3D transform pipeline: PS2Im3DFastTransform.csl
|
Converted from CHM to HTML with chm2web Pro 2.85 (unicode) |