Bug 71962
Summary: | Simplify the way that images are passed into a filter chain | ||
---|---|---|---|
Product: | WebKit | Reporter: | Simon Fraser (smfr) <simon.fraser> |
Component: | SVG | Assignee: | Dean Jackson <dino> |
Status: | RESOLVED INVALID | ||
Severity: | Normal | CC: | dino, krit, simon.fraser, thorton, webkit-bug-importer, zimmermann |
Priority: | P2 | Keywords: | InRadar |
Version: | 528+ (Nightly build) | ||
Hardware: | Unspecified | ||
OS: | Unspecified |
Simon Fraser (smfr)
Looking at the patch in bug 68472, I think the way that data gets into and out of filter chains could be improved. The code currently has to do:
m_filter->setSourceImageRect(size);
m_filter->setSourceImage(ImageBuffer::create(layoutSize));
GraphicsContext* sourceGraphicsContext = m_filter->sourceImage()->context();
// paint stuff
m_filter->effect()->apply();
p->drawImageBuffer(m_filter->effect()->asImageBuffer(), ...)
It seems like it would be much clearer as:
1. Make an ImageBuffer
2. Paint into the ImageBuffer
3. Hand the ImageBuffer to the filter.
4. Get the filtered result as an image buffer
5. Paint that image buffer.
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Radar WebKit Bug Importer
<rdar://problem/10435248>
Dirk Schulze
(In reply to comment #0)
> Looking at the patch in bug 68472, I think the way that data gets into and out of filter chains could be improved. The code currently has to do:
>
> m_filter->setSourceImageRect(size);
> m_filter->setSourceImage(ImageBuffer::create(layoutSize));
> GraphicsContext* sourceGraphicsContext = m_filter->sourceImage()->context();
> // paint stuff
>
> m_filter->effect()->apply();
> p->drawImageBuffer(m_filter->effect()->asImageBuffer(), ...)
>
>
> It seems like it would be much clearer as:
>
> 1. Make an ImageBuffer
> 2. Paint into the ImageBuffer
> 3. Hand the ImageBuffer to the filter.
> 4. Get the filtered result as an image buffer
> 5. Paint that image buffer.
Well, that seems what we are doing right now. What is your suggestion?
Simon Fraser (smfr)
True dat.