Within an immediate mode context established with RwImmediateBegin(), the vertex number specification method will not function, since there is no clump to index vertices from. Any attempt to do this will produce undefined results.
For the 3-D vertex specification method, co-ordinates should be given in world space. This is distinct to the immediate mode callback wherein 3-D vertices must be specified in object space.
The other salient feature of immediate mode contexts established by RwImmediateBegin() is that no 'camera damage' will occur as polygons are rendered. When an immediate mode callback will damage the area of the screen covered by the clumps viewport rectangle. Thus whatever is displayed by callback is guaranteed to be in an area which has been damaged. This is not the case with RwImmediateBegin() and RwImmediateEnd() as rendering could be to anywhere on screen. For this reason it is the responsibility of the user to damage the area of the screen that is being updated.
Not damaging the area where polygons are display can result in such areas are not being copied to the screen when RwShowCameraImage() is called. This can leave areas of the screen unsynchronized with the camera image.
Key points in using RwImmediateBegin() and RwImmediateEnd()
· Must be used within RwBeginCameraUpdate() .. RwEndCameraUpdate().
· Must use immediate mode rendering functions. No calls to RwRenderClump() or RwRenderScene().
· Only 3-D vertices or 2-D vertices can be used -- vertex numbers are meaningless.
· Areas where polygons have been rendered must be damaged if they are to be displayed by RwShowCameraImage().
· The pixel area for any Z-Buffering must be specified with the rectangle passed to RwImmediateBegin(). Rendering outside this area will give undefined results.
· 3-D vertices are specified in world co-ordinate space.