[Webkit-unassigned] [Bug 52311] [chromium] Add command-line flag to enable composite to offscreen texture.

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Wed Jan 12 13:53:27 PST 2011


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





--- Comment #6 from Vangelis Kokkevis <vangelis at chromium.org>  2011-01-12 13:53:26 PST ---
(From update of attachment 78717)
View in context: https://bugs.webkit.org/attachment.cgi?id=78717&action=review

> Source/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp:643
> +        GLC(m_context, m_context->bindFramebuffer(GraphicsContext3D::FRAMEBUFFER, 0));

It would be nice to re-factor LayerRendererChromium::useRenderSurface() such that when you pass zero as your render surface and m_compositeOffscreen == true then it renders to the display. I think it would be fairly straightforward. It looks like all it would take would be to:

Replace:
if (renderSurface == m_defaultRenderSurface && !m_compositeOffscreen)

by:
if ((renderSurface == m_defaultRenderSurface && !m_compositeOffscreen) || (!renderSurface && m_compositeOffscreen))

Then you won't need to call bindFramebuffer, setDrawViewportRect or m_currentRenderSurface == 0  here.

> Source/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp:647
> +        m_context->colorMask(true, true, true, true);

You can avoid doing this clear every frame if you just do it once when setCompositeOffscreen(true) is called and keep the color mask set to (true, true, true, false).

> WebKit/chromium/src/WebSettingsImpl.cpp:287
> +void WebSettingsImpl::setCompositeToTextureEnabled(bool enabled)

Since this is a setting that's only applicable to Chromium and not the other WebKit ports, I don't think it should be propagated down to the Settings class. The right way to do this would be to add another member to WebSettingsImpl and store the setting value there.  WebViewImpl has access to WebSettingsImpl via WebViewImpl::settings()

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