Re: display lists in cull traversal

New Message Reply Date view Thread view Subject view Author view

Christopher Geyer (cgeyer++at++seas.upenn.edu)
Thu, 3 Jul 1997 10:06:48 -0400 (EDT)


This is what the code pretty much looks like:

-> preShadVolCullCallback( ... )
-> {
-> currentDL = pfGetCurDList( );
-> printf( "### temporarily closing pfDispList %p\n", currentDL );
-> currentDL->close( );
-> printf( "#### opening shadow pfDispList %p\n", shadowVolDL );
-> shadVolDL->open( );
-> return( PFTRAV_CONT );
-> }
->
-> // in between capture the draw commands for the shadow volume
-> // in the shadVolDL
->
-> postShadVolCullCallback( ... )
-> {
-> printf( "#### closing shadow pfDispList %p\n", shadVolDL );
-> shadVolDL->close( );
-> printf( "### re-opening pfDispList %p\n", currentDL );
-> currentDL->open( );
-> return( PFTRAV_CONT );
-> }

Here's the output of dbx. Put on your parser.

(%%) denotes output from my program

...
(dbx) stop in pfPushMatrix
Process 21500: [3] stop in pfPushMatrix
(dbx) stop in pfPopMatrix
Process 21500: [4] stop in pfPopMatrix
(dbx) stop in MyVeryOwnCullFunc
Process 21500: [5] stop in MyVeryOwnCullFunc
(dbx) cont
[5] Process 21500 (SurfInShade) stopped at [::MyVeryOwnCullFunc(pfChannel*,void*):143 ,0x40e790]
 143 printf( "<-> cull func\n" );
(dbx) where
> 0 ::MyVeryOwnCullFunc(pfChannel*,void*)(chan =
0x18083160,__P273155816 = (nil))
["/tmp_mnt/home/cgeyer/testdrive/SurfInShade.C":143, 0x40e790]
   1 pfChannel::pf_callCullFunc(void)(0x18083160, 0x0, 0x2,
0x18083160) ["../../../lib/libpf/pfChannel.C":1800, 0x9a83528]
   2 threadCull(void)(0x18083160, 0x0, 0x2, 0x18083160)
["../../../lib/libpf/pfProcess.C":3216, 0x9a7d818]
   3 doCull(pfChannel*,pfChannel*)(0x18083160, 0x0, 0x2, 0x18083160)
["../../../lib/libpf/pfProcess.C":3268, 0x9a84328]
   4 appCullDraw(int)(0x0, 0x0, 0x2, 0x18083160)
["../../../lib/libpf/pfProcess.C":2376, 0x9b217d4]
   5 pfFrame(0x18083160, 0x0, 0x2, 0x18083160)
["../../../lib/libpf/pfProcess.C":2727, 0x9b2258c]
   6 main(argc = 1, argv = 0x7fff2f34)
["/tmp_mnt/home/cgeyer/testdrive/SurfInShade.C":327, 0x40f6b4]
   7 __start() ["crt1text.s":133, 0x40dd0c]
(dbx) cont
<-> cull func
 %% ### temporarily closing pfDispList 180a05c0
 %% #### opening shadow pfDispList 18076950
[3] Process 21500 (SurfInShade) stopped at [pfPushMatrix:98 +0xc,0x9a844c0]
         Source (of ../../../lib/libpr/xform.C) not available for Process 21500
(dbx) where
> 0 pfPushMatrix(0x1808eb10, 0x0, 0x0, 0x18099f08)
["../../../lib/libpr/xform.C":98, 0x9a844c0]
   1 _pfCuller::pf_applyXform(int)(0x1808eb10, 0x0, 0x0, 0x18099f08)
["../../../lib/libpf/pfCuller.C":1226, 0x9a80428]
   2 _pfCuller::pf_flushStackState(void)(0x1808eb10, 0x0, 0xc4b52890,
0x18099f08) ["../../../lib/libpf/pfCuller.C":399, 0x9a7e11c]
   3 _pfCuller::add(pfGeoSet*)(0x1808eb10, 0x180a04c0, 0x0,
0x18099f08) ["../../../lib/libpf/pfCuller.C":351, 0x9a727d8]
   4 pfGeode::nb_cull(int,int,_pfCuller*)(0x180e70c0, 0x0, 0x1,
0x1808eb10) ["../../../lib/libpf/pfGeode.C":253, 0x9a714a0]
   5 pfGroup::nb_cull(int,int,_pfCuller*)(0x1809faa0, 0xb, 0x1,
0x1808eb10) ["../../../lib/libpf/pfGroup.C":247, 0x9a6dbe4]
   6 pfSCS::nb_cull(int,int,_pfCuller*)(0x1807f770, 0xb, 0x1,
0x1808eb10) ["../../../lib/libpf/pfSCS.C":308, 0x9a877e8]
   7 pfScene::nb_cull(int,int,_pfCuller*)(0x180763a0, 0xb, 0x1,
0x1808eb10) ["../../../lib/libpf/pfScene.C":269, 0x9afacbc]
   8 _pfCuller::nb_cull(void)(0x1808eb10, 0x0, 0x0, 0x18099f08)
["../../../lib/libpf/pfCuller.C":197, 0x9a7ad70]
   9 pfCull(0x1808eb10, 0x0, 0x0, 0x18099f08)
["../../../lib/libpf/pfProcess.C":3319, 0x9a7f1d4]
   10 ::MyVeryOwnCullFunc(pfChannel*,void*)(chan = 0x18083160,
__P273155816 = (nil))
["/tmp_mnt/home/cgeyer/testdrive/SurfInShade.C":144, 0x40e7b4]
   11 pfChannel::pf_callCullFunc(void)(0x1808eb10, 0x0, 0x0,
0x18083160) ["../../../lib/libpf/pfChannel.C":1800, 0x9a83528]
   12 threadCull(void)(0x18083160, 0x0, 0x0, 0x18099f08)
["../../../lib/libpf/pfProcess.C":3216, 0x9a7d818]
   13 doCull(pfChannel*,pfChannel*)(0x18083160, 0x0, 0x0, 0x18099f08)
["../../../lib/libpf/pfProcess.C":3268, 0x9a84328]
   14 appCullDraw(int)(0x0, 0x0, 0x0, 0x18099f08)
["../../../lib/libpf/pfProcess.C":2376, 0x9b217d4]
   15 pfFrame(0x1808eb10, 0x0, 0x0, 0x18099f08)
["../../../lib/libpf/pfProcess.C":2727, 0x9b2258c]
   16 main(argc = 1, argv = 0x7fff2f34)
["/tmp_mnt/home/cgeyer/testdrive/SurfInShade.C":327, 0x40f6b4]
   17 __start() ["crt1text.s":133, 0x40dd0c]
(dbx) cont
 %% #### closing shadow pfDispList 18076950
 %% ### re-opening pfDispList 180a05c0
[4] Process 21500 (SurfInShade) stopped at [pfPopMatrix:144 +0xc,0x9a845fc]
         Source (of ../../../lib/libpr/xform.C) not available for Process 21500
(dbx) where
> 0 pfPopMatrix(0x1808eb10, 0xffffffff, 0x0, 0x0)
["../../../lib/libpr/xform.C":144, 0x9a845fc]
   1 _pfCuller::pf_applyXform(int)(0x1808eb10, 0xffffffff, 0x0, 0x0)
["../../../lib/libpf/pfCuller.C":1222, 0x9a8040c]
   2 _pfCuller::nb_cull(void)(0x1808eb10, 0xffffffff, 0x0, 0x0)
["../../../lib/libpf/pfCuller.C":202, 0x9a7ade0]
   3 pfCull(0x1808eb10, 0xffffffff, 0x0, 0x0)
["../../../lib/libpf/pfProcess.C":3319, 0x9a7f1d4]
   4 ::MyVeryOwnCullFunc(pfChannel*,void*)(chan = 0x18083160,
__P273155816 = (nil))
["/tmp_mnt/home/cgeyer/testdrive/SurfInShade.C":144, 0x40e7b4]
   5 pfChannel::pf_callCullFunc(void)(0x1808eb10, 0xffffffff, 0x0,
0x18083160) ["../../../lib/libpf/pfChannel.C":1800, 0x9a83528]
   6 threadCull(void)(0x18083160, 0xffffffff, 0x0, 0x0)
["../../../lib/libpf/pfProcess.C":3216, 0x9a7d818]
   7 doCull(pfChannel*,pfChannel*)(0x18083160, 0xffffffff, 0x0, 0x0)
["../../../lib/libpf/pfProcess.C":3268, 0x9a84328]
   8 appCullDraw(int)(0x0, 0xffffffff, 0x0, 0x0)
["../../../lib/libpf/pfProcess.C":2376, 0x9b217d4]
   9 pfFrame(0x1808eb10, 0xffffffff, 0x0, 0x0)
["../../../lib/libpf/pfProcess.C":2727, 0x9b2258c]
   10 main(argc = 1, argv = 0x7fff2f34)
["/tmp_mnt/home/cgeyer/testdrive/SurfInShade.C":327, 0x40f6b4]
   11 __start() ["crt1text.s":133, 0x40dd0c]
(dbx)

Does this help any?

Christopher

----------------------------------------------------------------------------
 Christopher Geyer | CompSci and Math '99 at the University of Pennsylvania
  215-732-4218 | cgeyer++at++seas.upenn.edu | http://www.seas.upenn.edu/~cgeyer/
=======================================================================
List Archives, FAQ, FTP: http://www.sgi.com/Technology/Performer/
            Submissions: info-performer++at++sgi.com
        Admin. requests: info-performer-request++at++sgi.com


New Message Reply Date view Thread view Subject view Author view

This archive was generated by hypermail 2.0b2 on Mon Aug 10 1998 - 17:55:34 PDT

This message has been cleansed for anti-spam protection. Replace '++at++' in any mail addresses with the '@' symbol.