From: Jason Coposky (jasonc++at++elumens.com)
Date: 10/05/2001 04:50:02
thanks for all the help!
it was my understanding that in the creation of a
pfFlux, the size of the buffer(s) must be provided at
the time of initialization. im in a situation where
the size of the buffer changes given the user's whim,
guess i have s'more reading to do. :)
i could theoretically just create a mesh with a fairly
large number of verticies in a pfFlux, call that the
upper bound and go from there but that doesnt sound all
that elegant to me. it seems that the fluxed_gset.C
example does something like this. the primitive count
changes, but the size of the buffer does not. ill have to
go back through it.
thanks again.
~J
> Hello Jason !
>
> By default, Performer uses multiple processes for processing
> the scene graph.
> These processes run as a pipeline: When your application
> works on frame N,
> a Performer CULL process works on frame (N-1), and a DRAW
> process works on
> frame (N-2).
>
> All your scene graph internal nodes (not pfGeoSets) are
> multi-buffered. So,
> each phase in the pipeline owns a copy of all the internal nodes.
> Plain pfGeoSets are not multi-buffered so if you change them
> in your application
> program, your changes interfere with other pipeline stages
> (and may crash your
> program).
>
> You can create multi-buffered pfGeoSets explicitly by using a
> pfFlux. There
> are multiple short sample programs for using pfFluxes under
> /usr/share/Performer/src/pguide/libpf
> I suggest that you take a look at:
> /usr/share/Performer/src/pguide/libpf/C++/fluxed_gset.C
> and read the man pages on pfFlux and on pfFluxedGSetInit.
> Also, the Performer
> programmer's guide contains a chapter on pfFluxes called
> `Dynamic Data'.
>
> -yair
>
>
> > im generating the geosets on the fly, and on occasion, i need to
> > rebuild the
> > scene graph given a new mesh density. the issue is that
> im getting a
> > segfault
> > in various places within the app process.
> >
> > in order to regenerate the scene graph, i setScene(
> NULL ) on the
> > channel,
> > remove the geoset from the geode, pfFree the vertex, tex coord &
> > index arrays,
> > pfMalloc them to their new sizes, re calc them, and
> stuff them back
> > in the
> > geoset. i then reattach everthing. ( im currently working with
> > meshs of
> > quads of N x N size )
> >
> > i can remesh the geosets as much as i want ( which includes the
> > destruction &
> > reallocation of the various arrays ) as long as the
> _sizes_ of the
> > arrays do not change.
> > when they do change, i will get the segfault but only for some
> > sizes, and not
> > others. it seems to like odd sizes, and crashes on
> even sizes for
> > some reason.
> > this is just what ive noticed so far.
> >
> > if anyone has any insight or if anything sounds amiss, please
> > advise.
> >
> > thx.
> >
> > ~J
> >
> > // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
> > Jason M. Coposky, 3D Software Engineer
> > jasonc++at++elumens.com
> > // =-=-=-=-=-=-=-=-=-=
> >
> >
> --------------------------------------------------------------
> ---------
> > List Archives, FAQ, FTP: http://www.sgi.com/software/performer/
> > Open Development Project: http://oss.sgi.com/projects/performer/
> > Submissions: info-performer++at++sgi.com
> > Admin. requests: info-performer-request++at++sgi.com
> >
> --------------------------------------------------------------
> ---------
> >
>
>
> --
> \_________ \_____ \__ \__ \_____
> \_________ \_____ \__ \__ \_____ Yair Kurzion
> \__ \__ \____\__ \__ yair++at++sgi.com
> \__ \__ \__ (650) 933-6502
> \__ \__ \__
> \__ \__ \__
>
This archive was generated by hypermail 2b29 : Fri Oct 05 2001 - 04:58:59 PDT