Rémi Arnaud (remi++at++remi.engr.sgi.com)
Fri, 23 Jan 1998 15:44:12 -0800 (PST)
More than one display list can be generated by the Culler.
- The scene display list, that can be accessed using pfDrawBin(-1) in
2.2, contains all objects that do not fall into a bin (see below). This
display list does not exist if the CULL and DRAW are in the same process
and if you call pfDraw(), but exists if you use pfDrawBin, or pfDrawScene.
Also, this is a RING Display list in the CULLoDRAW process model, which means
that the list is consumed within the frame, you cannot use that process
model if you want to reuse the Display List.
If you force the multiprocess model to be APPCULL_DRAW or APP_CULL_DRAW
then the scene DList exists.
- The bins (enabled with PFCULL_SORT in setTravMode) can be accessed as
display list using pfDrawBin(binId). The 2 default bins are the
OPAQUE and the TRANSPARENT objects, but more can be created (Avoid
the bin #3, this is reserved to be the Light Point Bin, and have
a very specific behavior. Use pfGetChanFreeBin to get the id of
an unused bin)
Anyway, you see that you can call functions to draw the display lists
(instead of calling pfDraw()), but do not have access to the list
itself. If you want to copy the list, the best solution is to open
another list, and call pfDrawBin/pfDrawScene, and then close it.
That way you will have a complete copy of the display list and
use the pfDList API directly. Note that after the copy, you will
have to call draw again. You can call pfDrawBin/pfDrawScene again,
or call draw() on your own display list.
Regards
_ / _ _
|_) _ ._ _ o /\ |_)|\ | /\ | || \
| \(/_| | || /--\| \| \|/--\|_||_/
=======================================================================
List Archives, FAQ, FTP: http://www.sgi.com/Technology/Performer/
Submissions: info-performer++at++sgi.com
Admin. requests: info-performer-request++at++sgi.com
This archive was generated by hypermail 2.0b2 on Mon Aug 10 1998 - 17:56:37 PDT