[Webkit-unassigned] [Bug 73634] [GTK] Add TextureMapper ImageBuffer support as a fallback from the hardware accelerated path

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Tue May 29 08:23:40 PDT 2012


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


Martin Robinson <mrobinson at webkit.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
 Attachment #144511|review?                     |review+, commit-queue-
               Flag|                            |




--- Comment #16 from Martin Robinson <mrobinson at webkit.org>  2012-05-29 08:23:39 PST ---
(From update of attachment 144511)
View in context: https://bugs.webkit.org/attachment.cgi?id=144511&action=review

Looking good. r+ though there are a few things to fix before landing.

> Source/WebCore/ChangeLog:4
> +        [GTK] Add TextureMapper ImageBuffer support as a fallback
> +        from the hardware accelerated path

Careful here, I don't think there should be a newline in the description.

> Source/WebCore/platform/graphics/cairo/GraphicsContext3DPrivate.cpp:30
> +#if USE(ACCELERATED_COMPOSITING) && USE(TEXTURE_MAPPER) && USE(TEXTURE_MAPPER_CAIRO)

Are you sure you want to guard the inclusion of TextureMapperGL.h with TEXTURE_MAPPER_CAIRO?

> Source/WebCore/platform/graphics/cairo/GraphicsContext3DPrivate.cpp:87
> +        glBindFramebuffer(GraphicsContext3D::FRAMEBUFFER, m_context->m_fbo);
> +        glReadPixels(/* x */ 0, /* y */ 0, width, height, GraphicsContext3D::RGBA, GraphicsContext3D::UNSIGNED_BYTE, imagePixels);
> +        glBindFramebuffer(GraphicsContext3D::FRAMEBUFFER, m_context->m_boundFBO);

You should set the GL_PACK_ROW_LENGTH to the stride of the image. While in practice this works with many images, I think that this code could break in some cases if you do not. So for instance you would call glPixelStorei(GL_PACK_ROW_LENGTH, stride / 4).

> Source/WebCore/platform/graphics/cairo/GraphicsContext3DPrivate.cpp:91
> +        context->platformContext()->drawSurfaceToContext(offscreenImage.get(), targetRect,

This can be one line.

> Source/WebKit/gtk/WebCoreSupport/AcceleratedCompositingContextCairo.cpp:107
> +    gtk_widget_queue_draw_area(GTK_WIDGET(m_webView),
> +                               rect.x(), rect.y(),
> +                               rect.width(), rect.height());

This can be one line.

> Source/WebKit/gtk/WebCoreSupport/AcceleratedCompositingContextCairo.cpp:169
> +    copyRectFromCairoSurfaceToContext(m_webView->priv->backingStore->cairoSurface(), cr,
> +                                      IntSize(), rectToPaint);

One line again.

> Source/WebKit/gtk/WebCoreSupport/AcceleratedCompositingContextClutter.cpp:56
> +qbool AcceleratedCompositingContext::renderLayersToWindow(cairo_t*, const IntRect& clipRect)

I think you may have accidentally inserted an extra q here.

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