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]>

> 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]>>
>>
>>
>>    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]
>> 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