|
From: CL <clc...@gm...> - 2009-01-16 00:36:59
|
Hi Bruce
Not at all. Unfortunately I am not very experienced in low level
graphics/opengl development, I can only help at surface level / minor
logic bug level.
CL
On 1/15/09, Bruce Sherwood <Bru...@nc...> wrote:
> Many thanks for looking into this! I'll try it.
>
> More generally, it would be a much healthier situation for VPython if more
> users would/could get involved at this level. Such help is greatly
> appreciated by everyone in the community.
>
> Bruce Sherwood
>
> CL wrote:
> >
> > About the opacity problem (crash when changing from opacity 1.0 to
> > lower), it looks like it is a bug in frame.cpp
> >
> > void frame::gl_render( const view& v)
> >
> > ....
> >
> > for (child_iterator i = children.begin(); i !=
> > child_iterator(children.end()); ++i) {
> > if (i->translucent()) {
> > // See display_kernel::draw().
> > trans_children.push_back( *i.base());
> > i = children.erase(i.base());
> > continue;
> > }
> >
> > i->outer_render(local);
> > }
> >
> > The code is trying to move a renderable from a list to another list
> > when the opacity of the renderable is changing from 1.0 to something
> > else. But children.erase() function returns the pointer after
> > deletion, not the pointer before deletion.
> >
> > Following similar logic in display_kernel::draw, replace the code with :
> >
> > child_iterator i(children.begin());
> > child_iterator i_end(children.end());
> > while (i != i_end) {
> > if (i->translucent()) {
> > // See display_kernel::draw().
> > trans_children.push_back( *i.base());
> > i = children.erase(i.base());
> > continue;
> > }
> > i->outer_render(local);
> > i++;
> >
> > It seems working on my simple test cases.
> >
> >
> >
> > > Don't I wish it were that simple. No, objects are created with
> > > opacity=1.0 by default. That's why a scene contains opaque objects if
> > > you don't explicitly set the opacity to something different.
> > >
> >
> >
> > > b = box()
> > > print b.opacity # shows 1.0
> > >
> >
> >
> > > Bruce Sherwood
> > >
> >
> >
> ------------------------------------------------------------------------------
> > This SF.net email is sponsored by:
> > SourcForge Community
> > SourceForge wants to tell your story.
> > http://p.sf.net/sfu/sf-spreadtheword
> > _______________________________________________
> > Visualpython-users mailing list
> > Vis...@li...
> >
> https://lists.sourceforge.net/lists/listinfo/visualpython-users
> >
>
|