Good morning webkit folks,

many of the filter classes in platform/graphics/filters use ImageBuffers getUnmultipliedImageData function, which returns a PassRefPtr<ImageData>. The ImageData class lives in html/. The only way to access the data contained in the ImageData class is to grab a CanvasPixelArray (which lives in html/canvas) using the data() method.

What's the proper way to fix this layering violation? Moving both ImageData* and CanvasPixelArray* to platform/graphics? One has to keep in mind that we're generating wrappers for both ImageData & CanvasPixelArray, both have associated IDL files.

As side note: ImageData is refcounted, the CanvasPixelArray is refcounted, and the data contained in the CanvasPixelArray is refcounted (WTF::ByteArray). For ImageBuffer it makes no sense to encapsulate the WTF::ByteArray in CanvasPixelArray, we could directly store it in the ImageData class, it's just one more refcounted object, which is useless for the purpose of the get..ImageData function.

I'm looking for the right way to fix this long standing layering violation. Feedback appreciated!

Cheers,
Niko
_______________________________________________
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev

Reply via email to