If DYNAMIC is a state , I can assume that it is an inherited property.

Assuming that can be good solution, I would be sufficient to set it on a
root node, isn't it ? (I will not do that of course)
Is it different to set it on a Geometry ? or on its Gode / Group / PAT
parent ?

I'll check is the good nodes are set to DYNAMIC or not.

Thanks,

 Vincent.

2009/1/13 J.P. Delport <[email protected]>

> Hi,
>
> sorry, I should have been a bit clearer. If using multithreaded modes you
> must make sure that the DataVariance on the objects you are changing
> dynamically is set to DYNAMIC, something like:
>
> stateset->setDataVariance(osg::Object::DYNAMIC);
>
> Also have a search on the mailing list for "setDataVariance".
>
> regards
> jp
>
> Vincent Bourdier wrote:
>
>> Hi J.P,
>>
>> I have no crash in singleThreaded mode. It is a random crash so I can not
>> be 100% sure, but it seems to be the problem.
>> So, what can cause a crash with Dynamic settings ? I have some, I'll check
>> them, but I'm not sure of what to search...
>>
>> Thanks,
>>
>> Vincent.
>>
>> 2009/1/13 J.P. Delport <[email protected] <mailto:[email protected]
>> >>
>>
>>
>>    Hi,
>>
>>    can you make it crash in singlethreaded mode? If not, check all
>>    settings of "dynamic" on text nodes.
>>
>>    jp
>>
>>    Vincent Bourdier wrote:
>>
>>        Hi,
>>
>>        I allow myself to Up this topic...
>>
>>        Thanks,
>>
>>        Regards,
>>          Vincent.
>>
>>        2009/1/12 Vincent Bourdier <[email protected]
>>        <mailto:[email protected]>
>>        <mailto:[email protected]
>>        <mailto:[email protected]>>>
>>
>>
>>           I think there is a real bug in the rendering of OsgText.
>>        (2.6.1 release)
>>
>>           The bug does appear randomly... I get it with simple text in
>>        a Hud,
>>           updated each frame.
>>
>>           The bug is there :
>>
>>
>>           /void Text::drawForegroundText(osg::State& state, const
>>        GlyphQuads&
>>           glyphquad, const osg::Vec4& colorMultiplier) const
>>           {
>>               unsigned int contextID = state.getContextID();
>>
>>               const GlyphQuads::Coords3& transformedCoords =
>>           glyphquad._transformedCoords[contextID];
>>               if (!transformedCoords.empty())
>>               {
>>                   state.setVertexPointer( 3, GL_FLOAT, 0,
>>           &(transformedCoords.front()));
>>                   state.setTexCoordPointer( 0, 2, GL_FLOAT, 0,
>>           &(glyphquad._texcoords.front()));  *//HERE :
>>        glyphquad._texcoords is
>>           void, but seems initiated *
>>
>>                                                                     *
>>           //VS degogeur said content is [0]()*
>>
>>                   if(_colorGradientMode == SOLID)
>>                   {
>>                       state.disableColorPointer();
>>
>> glColor4f(colorMultiplier.r()*_color.r(),colorMultiplier.g()*_color.g(),colorMultiplier.b()*_color.b(),colorMultiplier.a()*_color.a());
>>                   }
>>                   else
>>                   {
>>                       state.setColorPointer( 4, GL_FLOAT, 0,
>>           &(glyphquad._colorCoords.front()));
>>                   }
>>
>>                   glDrawArrays(GL_QUADS,0,transformedCoords.size());
>>
>>               }
>>           }/
>>
>>
>>
>>
>>           Stack trace :
>>
>>                msvcp80d.dll!std::_Debug_message(const wchar_t *
>>           message=0x01919bd0, const wchar_t * file=0x01918570, unsigned
>> int
>>           line=99)  Ligne 24    C++
>>
>> osg48-osgTextd.dll!std::_Vector_const_iterator<osg::Vec2f,std::allocator<osg::Vec2f>
>>            >::operator*()  Ligne 99 + 0x14 octets    C++
>>
>> osg48-osgTextd.dll!std::vector<osg::Vec2f,std::allocator<osg::Vec2f>
>>            >::front()  Ligne 772 + 0x24 octets    C++
>>            >
>> osg48-osgTextd.dll!osgText::Text::drawForegroundText(osg::State &
>>           state={...}, const osgText::Text::GlyphQuads & glyphquad={...},
>>           const osg::Vec4f & colorMultiplier={...})  Ligne 1726 + 0xb
>>           octets    C++
>>
>> osg48-osgTextd.dll!osgText::Text::renderOnlyForegroundText(osg::State
>>           & state={...}, const osg::Vec4f & colorMultiplier={...})
>>         Ligne 1754
>>           + 0x14 octets    C++
>>
>>  osg48-osgTextd.dll!osgText::Text::drawImplementation(osg::State
>>           & state={...}, const osg::Vec4f & colorMultiplier={...})  Ligne
>>           1369    C++
>>
>> osg48-osgTextd.dll!osgText::Text::drawImplementation(osg::RenderInfo
>>           & renderInfo={...})  Ligne 1253    C++
>>                osg48-osgd.dll!osg::Drawable::draw(osg::RenderInfo &
>>           renderInfo={...})  Ligne 895 + 0x13 octets    C++
>>
>>  osg48-osgUtild.dll!osgUtil::RenderLeaf::render(osg::RenderInfo
>>           & renderInfo={...}, osgUtil::RenderLeaf *
>>        previous=0x06f48618)    Ligne 60 + 0x19 octets    C++
>>
>> osg48-osgUtild.dll!osgUtil::RenderBin::drawImplementation(osg::RenderInfo
>>           & renderInfo={...}, osgUtil::RenderLeaf * &
>>        previous=0x06f48618)    Ligne 419 + 0x19 octets    C++
>>
>>  osg48-osgUtild.dll!osgUtil::RenderBin::draw(osg::RenderInfo &
>>           renderInfo={...}, osgUtil::RenderLeaf * &
>>        previous=0x06f48618)    Ligne 384 + 0x17 octets    C++
>>
>> osg48-osgUtild.dll!osgUtil::RenderBin::drawImplementation(osg::RenderInfo
>>           & renderInfo={...}, osgUtil::RenderLeaf * &
>>        previous=0x06f48618)    Ligne 469 + 0x35 octets    C++
>>
>> osg48-osgUtild.dll!osgUtil::RenderStage::drawImplementation(osg::RenderInfo
>>           & renderInfo={...}, osgUtil::RenderLeaf * &
>>        previous=0x06f48618)    Ligne 1235    C++
>>
>>  osg48-osgUtild.dll!osgUtil::RenderBin::draw(osg::RenderInfo &
>>           renderInfo={...}, osgUtil::RenderLeaf * &
>>        previous=0x06f48618)    Ligne 384 + 0x17 octets    C++
>>
>> osg48-osgUtild.dll!osgUtil::RenderStage::drawInner(osg::RenderInfo
>>        &
>>           renderInfo={...}, osgUtil::RenderLeaf * &
>>        previous=0x06f48618, bool
>>           & doCopyTexture=false)  Ligne 832    C++
>>
>>  osg48-osgUtild.dll!osgUtil::RenderStage::draw(osg::RenderInfo &
>>           renderInfo={...}, osgUtil::RenderLeaf * &
>>        previous=0x06f48618)    Ligne 1090 + 0x1b octets    C++
>>
>> osg48-osgUtild.dll!osgUtil::RenderStage::drawPostRenderStages(osg::RenderInfo
>>           & renderInfo={...}, osgUtil::RenderLeaf * &
>>        previous=0x06f48618)    Ligne 1248 + 0x2c octets    C++
>>
>>  osg48-osgUtild.dll!osgUtil::RenderStage::draw(osg::RenderInfo &
>>           renderInfo={...}, osgUtil::RenderLeaf * &
>>        previous=0x06f48618)    Ligne 1155 + 0x17 octets    C++
>>                osg48-osgUtild.dll!osgUtil::SceneView::draw()  Ligne 1509 +
>>           0x37 octets    C++
>>                osg48-osgViewerd.dll!osgViewer::Renderer::draw()  Ligne
>>        413 +
>>           0xf octets    C++
>>
>> osg48-osgViewerd.dll!osgViewer::Renderer::operator()(osg::GraphicsContext
>>           * context=0x021077e0)  Ligne 640 + 0xf octets    C++
>>                osg48-osgd.dll!osg::GraphicsContext::runOperations()
>>         Ligne 688
>>           + 0x33 octets    C++
>>
>> osg48-osgd.dll!osg::RunOperations::operator()(osg::GraphicsContext
>>        *
>>           context=0x021077e0)  Ligne 135    C++
>>
>>  osg48-osgd.dll!osg::GraphicsOperation::operator()(osg::Object *
>>           object=0x021077e0)  Ligne 50 + 0x19 octets    C++
>>                osg48-osgd.dll!osg::OperationThread::run()  Ligne 413 +
>> 0x26
>>           octets    C++
>>                osg48-osgd.dll!osg::GraphicsThread::run()  Ligne 40    C++
>>
>> ot11-OpenThreadsd.dll!OpenThreads::ThreadPrivateActions::StartThread(void
>>           * data=0x084edb7c)  Ligne 113 + 0xf octets    C++
>>                msvcr80d.dll!_callthreadstartex()  Ligne 348 + 0xf
>>        octets    C
>>                msvcr80d.dll!_threadstartex(void * ptd=0x07007650)
>>         Ligne 331    C
>>                kernel32.dll!7c80b683()             [Les frames
>>        ci-dessous sont peut-être incorrects et/ou
>>           manquants, aucun symbole chargé pour kernel32.dll]
>>    ntdll.dll!7c92b686()
>>           I just tried it with osg SVN : nearly the same error
>>
>>           in :
>>
>>           /void Text::renderOnlyForegroundText(osg::State& state, const
>>           osg::Vec4& colorMultiplier) const
>>           {
>>               for(TextureGlyphQuadMap::iterator
>>        titr=_textureGlyphQuadMap.begin();
>>                   titr!=_textureGlyphQuadMap.end();
>>                   ++titr)
>>               {
>>                   // need to set the texture here...
>>                   state.applyTextureAttribute(0,titr->first.get());
>>
>>                   const GlyphQuads& glyphquad = titr->second;  *//HERE :
>>           titr->second seems to be invalid (VS said more than 800 000 000
>>           _glyphs ...)*
>>
>>                   drawForegroundText(state, glyphquad, colorMultiplier);
>>               }
>>
>>           }/
>>
>>           Stack trace
>>
>>                msvcp80d.dll!std::_Debug_message(const wchar_t *
>>           message=0x01947d68, const wchar_t * file=0x01946a90, unsigned
>> int
>>           line=245)  Ligne 24    C++
>>
>> osg54-osgTextd.dll!std::_Tree<std::_Tmap_traits<osg::ref_ptr<osgText::Font::GlyphTexture>,osgText::Text::GlyphQuads,std::less<osg::ref_ptr<osgText::Font::GlyphTexture>
>>
>> >,std::allocator<std::pair<osg::ref_ptr<osgText::Font::GlyphTexture>
>>           const ,osgText::Text::GlyphQuads> >,0>
>>            >::const_iterator::operator*()  Ligne 245 + 0x17 octets    C++
>>
>> osg54-osgTextd.dll!std::_Tree<std::_Tmap_traits<osg::ref_ptr<osgText::Font::GlyphTexture>,osgText::Text::GlyphQuads,std::less<osg::ref_ptr<osgText::Font::GlyphTexture>
>>
>> >,std::allocator<std::pair<osg::ref_ptr<osgText::Font::GlyphTexture>
>>           const ,osgText::Text::GlyphQuads> >,0>
>>         >::iterator::operator*()    Ligne 452    C++
>>
>> osg54-osgTextd.dll!std::_Tree<std::_Tmap_traits<osg::ref_ptr<osgText::Font::GlyphTexture>,osgText::Text::GlyphQuads,std::less<osg::ref_ptr<osgText::Font::GlyphTexture>
>>
>> >,std::allocator<std::pair<osg::ref_ptr<osgText::Font::GlyphTexture>
>>           const ,osgText::Text::GlyphQuads> >,0>
>>         >::iterator::operator->()    Ligne 457    C++
>>            >
>> osg54-osgTextd.dll!osgText::Text::renderOnlyForegroundText(osg::State
>>           & state={...}, const osg::Vec4f & colorMultiplier={...})
>>         Ligne 1751
>>           + 0x8 octets    C++
>>
>>  osg54-osgTextd.dll!osgText::Text::drawImplementation(osg::State
>>           & state={...}, const osg::Vec4f & colorMultiplier={...})  Ligne
>>           1368    C++
>>
>> osg54-osgTextd.dll!osgText::Text::drawImplementation(osg::RenderInfo
>>           & renderInfo={...})  Ligne 1252    C++
>>                osg54-osgd.dll!osg::Drawable::draw(osg::RenderInfo &
>>           renderInfo={...})  Ligne 898 + 0x13 octets    C++
>>
>>  osg54-osgUtild.dll!osgUtil::RenderLeaf::render(osg::RenderInfo
>>           & renderInfo={...}, osgUtil::RenderLeaf *
>>        previous=0x08835dc0)    Ligne 60 + 0x19 octets    C++
>>
>> osg54-osgUtild.dll!osgUtil::RenderBin::drawImplementation(osg::RenderInfo
>>           & renderInfo={...}, osgUtil::RenderLeaf * &
>>        previous=0x08835dc0)    Ligne 419 + 0x19 octets    C++
>>
>>  osg54-osgUtild.dll!osgUtil::RenderBin::draw(osg::RenderInfo &
>>           renderInfo={...}, osgUtil::RenderLeaf * &
>>        previous=0x08835dc0)    Ligne 384 + 0x17 octets    C++
>>
>> osg54-osgUtild.dll!osgUtil::RenderBin::drawImplementation(osg::RenderInfo
>>           & renderInfo={...}, osgUtil::RenderLeaf * &
>>        previous=0x08835dc0)    Ligne 469 + 0x35 octets    C++
>>
>> osg54-osgUtild.dll!osgUtil::RenderStage::drawImplementation(osg::RenderInfo
>>           & renderInfo={...}, osgUtil::RenderLeaf * &
>>        previous=0x08835dc0)    Ligne 1253    C++
>>
>>  osg54-osgUtild.dll!osgUtil::RenderBin::draw(osg::RenderInfo &
>>           renderInfo={...}, osgUtil::RenderLeaf * &
>>        previous=0x08835dc0)    Ligne 384 + 0x17 octets    C++
>>
>> osg54-osgUtild.dll!osgUtil::RenderStage::drawInner(osg::RenderInfo
>>        &
>>           renderInfo={...}, osgUtil::RenderLeaf * &
>>        previous=0x08835dc0, bool
>>           & doCopyTexture=false)  Ligne 848    C++
>>
>>  osg54-osgUtild.dll!osgUtil::RenderStage::draw(osg::RenderInfo &
>>           renderInfo={...}, osgUtil::RenderLeaf * &
>>        previous=0x08835dc0)    Ligne 1108 + 0x1b octets    C++
>>
>> osg54-osgUtild.dll!osgUtil::RenderStage::drawPostRenderStages(osg::RenderInfo
>>           & renderInfo={...}, osgUtil::RenderLeaf * &
>>        previous=0x08835dc0)    Ligne 1266 + 0x2c octets    C++
>>
>>  osg54-osgUtild.dll!osgUtil::RenderStage::draw(osg::RenderInfo &
>>           renderInfo={...}, osgUtil::RenderLeaf * &
>>        previous=0x08835dc0)    Ligne 1173 + 0x17 octets    C++
>>                osg54-osgUtild.dll!osgUtil::SceneView::draw()  Ligne 1504 +
>>           0x37 octets    C++
>>                osg54-osgViewerd.dll!osgViewer::Renderer::draw()  Ligne
>>        423 +
>>           0xf octets    C++
>>
>> osg54-osgViewerd.dll!osgViewer::Renderer::operator()(osg::GraphicsContext
>>           * context=0x021387f0)  Ligne 650 + 0xf octets    C++
>>                osg54-osgd.dll!osg::GraphicsContext::runOperations()
>>         Ligne 688
>>           + 0x33 octets    C++
>>
>> osg54-osgd.dll!osg::RunOperations::operator()(osg::GraphicsContext
>>        *
>>           context=0x021387f0)  Ligne 135    C++
>>
>>  osg54-osgd.dll!osg::GraphicsOperation::operator()(osg::Object *
>>           object=0x021387f0)  Ligne 50 + 0x19 octets    C++
>>                osg54-osgd.dll!osg::OperationThread::run()  Ligne 413 +
>> 0x26
>>           octets    C++
>>                osg54-osgd.dll!osg::GraphicsThread::run()  Ligne 40    C++
>>
>> ot11-OpenThreadsd.dll!OpenThreads::ThreadPrivateActions::StartThread(void
>>           * data=0x08681fc4)  Ligne 113 + 0xf octets    C++
>>                msvcr80d.dll!_callthreadstartex()  Ligne 348 + 0xf
>>        octets    C
>>                msvcr80d.dll!_threadstartex(void * ptd=0x0704e670)
>>         Ligne 331    C
>>                kernel32.dll!7c80b683()             [Les frames
>>        ci-dessous sont peut-être incorrects et/ou
>>           manquants, aucun symbole chargé pour kernel32.dll]
>>    ntdll.dll!7c92b686()
>>           Do you have any suggestion ? what can cause this problem ?
>>           Thanks a lot.
>>
>>           Regards,
>>              Vincent.
>>
>>
>>
>>
>>  ------------------------------------------------------------------------
>>
>>        _______________________________________________
>>        osg-users mailing list
>>        [email protected]
>>        <mailto:[email protected]>
>>
>> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>>
>>
>>    --    This message is subject to the CSIR's copyright terms and
>>    conditions, e-mail legal notice, and implemented Open Document
>>    Format (ODF) standard. The full disclaimer details can be found at
>>    http://www.csir.co.za/disclaimer.html.
>>
>>    This message has been scanned for viruses and dangerous content by
>>    MailScanner, and is believed to be clean.  MailScanner thanks
>>    Transtec Computers for their support.
>>
>>    _______________________________________________
>>    osg-users mailing list
>>    [email protected]
>>    <mailto:[email protected]>
>>
>> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>>
>>
>>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> osg-users mailing list
>> [email protected]
>> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>>
>
> --
> This message is subject to the CSIR's copyright terms and conditions,
> e-mail legal notice, and implemented Open Document Format (ODF) standard.
> The full disclaimer details can be found at
> http://www.csir.co.za/disclaimer.html.
>
> This message has been scanned for viruses and dangerous content by
> MailScanner, and is believed to be clean.  MailScanner thanks Transtec
> Computers for their support.
>
> _______________________________________________
> osg-users mailing list
> [email protected]
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to