Nicolas Gauvin (nicolas++at++cae.ca)
Wed, 2 Jul 1997 15:20:22 -0400
> What happens is that for some reason a popmatrix() (or apparently the
> token DL_POPMAT) does not get appended to the shadVolDL. It instead gets
> appended to currentDL. So I have an extra pushmatrix() without its
> corresponding popmatrix() in a my shadow volume display list; and I have
> an extra popmatrix() without a cooresponding pushmatrix() in the scene
> display list (this is what I gather from looking at output from gldebug).
...
> It would seem that AFTER the call to preShadVolCullCallback() a
> pushmatrix() is being added, and that AFTER postShadVolCullCallback() a
> popmatrix() is being added. Wouldn't it either be before and after, or
> after and before, but not after and after?
>-- End of excerpt from Christopher Geyer
If what you are describing is really what is happening then how about simply
trying to add the missing push and pop to each display list yourself?
Something like:
> preShadVolCullCallback( ... )
> {
> currentDL = pfGetCurDList( );
// add the missing push to currentDL
pfPushMatrix();
> currentDL->close( );
> shadVolDL->open( );
> return( PFTRAV_CONT );
> }
>
> // in between capture the draw commands for the shadow volume
> // in the shadVolDL
>
> postShadVolCullCallback( ... )
> {
// add the missing pop to shadVolDL
pfPopMatrix();
> shadVolDL->close( );
> currentDL->open( );
> return( PFTRAV_CONT );
> }
--
Nicolas Gauvin CAE Electronics Ltd., 8585 Cote De Liesse
3D Graphics Software Saint-Laurent, Quebec, Canada, H4L-4X4
nicolas++at++cae.ca Tel: (514) 341-2000 x2275, Fax: (514) 340-5496
=======================================================================
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:55:34 PDT