[Webkit-unassigned] [Bug 116654] [BlackBerry] DRT - crashed on GraphicsContext3D::makeContextCurrent

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu May 23 02:10:30 PDT 2013


https://bugs.webkit.org/show_bug.cgi?id=116654





--- Comment #5 from Arvid Nilsson <anilsson at rim.com>  2013-05-23 02:08:59 PST ---
(In reply to comment #4)
> (From update of attachment 202648 [details])
> Sorry for the misleading internal review - you should make the WebGLLayerWebKitThread::m_webGLContext a weak pointer rather than a ref pointer... Or fix it some other way...

In 

GraphicsContext3D::~GraphicsContext3D()
{
    if (m_texture) {
        makeContextCurrent();
        ::glDeleteTextures(1, &m_texture);
        if (m_attrs.stencil || m_attrs.depth)
            ::glDeleteRenderbuffers(1, &m_depthStencilBuffer);
        ::glDeleteFramebuffers(1, &m_fbo);
    }

    m_compositingLayer = 0; // Must release compositing layer before destroying the context.
    BlackBerry::Platform::Graphics::destroyWebGLContext(m_context);
}

You can call some method on the m_compositingLayer, like m_compositingLayer->contextDestroyed(), before actually destroying the WebGL context. Something like this:

GraphicsContext3D::~GraphicsContext3D()
{
    ...
    m_compositingLayer->webGLContextDestroyed();
    BlackBerry::Platform::Graphics::destroyWebGLContext(m_context);
}

WebGLLayerWebKitThread::webGLContextDestroyed()
{
    if (m_webGLContext && m_webGLContext->makeContextCurrent())
        deleteFrontBuffer();
}

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list