[Webkit-unassigned] [Bug 44127] [chromium] Thumbnails not generated for GPU Rendered Pages

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Wed Aug 18 10:48:02 PDT 2010


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





--- Comment #8 from Vangelis Kokkevis <vangelis at chromium.org>  2010-08-18 10:48:02 PST ---
(In reply to comment #7)
> (In reply to comment #5)
> > 
> > WebKit/chromium/public/WebView.h:215
> >  +      virtual void readPixels(WebCanvas *canvas) {}
> > Does this method need to appear in WebView or just WebViewImpl?  Generally the WebView API is a pure virtual one.
> 
> I put a default implementation in since I wasn't sure what else might be inheriting from WebView ... I've made it pure virtual.

>From the chromium code, do you use a pointer to a WebViewImpl or to a WebView?  If you can please post the chromium patch as well in the chrome bug tracker, I get a better picture of how things are hooked up.

> 
> > WebKit/chromium/src/WebViewImpl.cpp:948
> >  +      ASSERT(isAcceleratedCompositingActive());
> > Is this method only called if acceleratedCompositing is active? It seems that this ASSERT() should be converted to an if () and have a different path if you're not using accelerated compositing.  In either case though, the code needs to be withing a:
> > #if USE(ACCELERATED_COMPOSITING)
> > block
> 
> The chromium-side code ensures this method is only called if acceleratedCompositing is active. I can wrap it in #if USE(ACCELERATED_COMPOSITING) no problem, but then should I wrap all my plumbing methods as well?

A lot of the methods related to accelerated compositing are behind that guard so the code won't compile if ACCELERATED_COMPOSITING is not defined. isAcceleratedCompositingActive() is definitely one of them.
> 
> > WebCore/platform/graphics/chromium/LayerRendererChromium.cpp:509
> >  +  void LayerRendererChromium::readPixels(skia::PlatformCanvas* canvasPtr)
> > Skia is only used on windows and linux. We'll need a CG path for the mac. A good example of similar code is in: GraphicsContext3DInternal::paintRenderingResultsToCanvas()
> 
> OK. To make the interface in LayerRendererChromium as generic as possible I'd like to pass the context as a WebCanvas*, but I can't seem to figure out how to get WebCanvas.h included in LayerRendererChromium.h (file not found). Suggestions?

I take that back. Skia::PlatformCanvas seems to be available on the mac as well as it's apparently used to transfer bits between the renderer and the browser process.  It's worth trying to compile the code on the mac to see how things do.  

> 
> > WebCore/platform/graphics/chromium/LayerRendererChromium.h:90
> >  +      void readPixels(skia::PlatformCanvas* canvasPtr);
> > nit: Use a more descriptive name for this method like: getFramebufferPixels() or something of that sort?
> 
> Done.

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