Changeset 44810 in webkit
- Timestamp:
- Jun 18, 2009 11:53:51 AM (15 years ago)
- Location:
- trunk/WebCore
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebCore/ChangeLog
r44809 r44810 1 2009-06-18 Dirk Schulze <krit@webkit.org> 2 3 Reviewed by Oliver Hunt. 4 5 Share code between filterEffects 6 [https://bugs.webkit.org/show_bug.cgi?id=26479] 7 8 Share more code of filter effects. The imageBuffer creation can move to 9 FilterEffect ant every effect asks for the GraphicsContext. Move the 10 drawingRect calculation to FilterEffect. 11 12 * platform/graphics/filters/FilterEffect.cpp: 13 (WebCore::FilterEffect::calculateDrawingRect): 14 (WebCore::FilterEffect::getEffectContext): 15 * platform/graphics/filters/FilterEffect.h: 16 * platform/graphics/filters/SourceGraphic.cpp: 17 (WebCore::SourceGraphic::apply): 18 * svg/graphics/filters/SVGFEFlood.cpp: 19 (WebCore::FEFlood::apply): 20 * svg/graphics/filters/SVGFEOffset.cpp: 21 (WebCore::FEOffset::apply): 22 1 23 2009-06-18 Simon Fraser <simon.fraser@apple.com> 2 24 -
trunk/WebCore/platform/graphics/filters/FilterEffect.cpp
r44655 r44810 60 60 } 61 61 62 FloatRect FilterEffect::calculateDrawingRect(const FloatRect& srcRect) 63 { 64 FloatPoint startPoint = FloatPoint(srcRect.x() - subRegion().x(), srcRect.y() - subRegion().y()); 65 FloatRect drawingRect = FloatRect(startPoint, srcRect.size()); 66 return drawingRect; 67 } 68 69 GraphicsContext* FilterEffect::getEffectContext() 70 { 71 IntRect bufferRect = enclosingIntRect(subRegion()); 72 m_effectBuffer = ImageBuffer::create(bufferRect.size(), false); 73 return m_effectBuffer->context(); 74 } 75 62 76 TextStream& FilterEffect::externalRepresentation(TextStream& ts) const 63 77 { -
trunk/WebCore/platform/graphics/filters/FilterEffect.h
r44655 r44810 25 25 #include "Filter.h" 26 26 #include "FloatRect.h" 27 #include "GraphicsContext.h" 27 28 #include "ImageBuffer.h" 28 29 #include "TextStream.h" … … 75 76 FloatRect calculateUnionOfChildEffectSubregions(Filter*, FilterEffect*); 76 77 78 GraphicsContext* getEffectContext(); 79 FloatRect calculateDrawingRect(const FloatRect&); 80 77 81 virtual FloatRect uniteChildEffectSubregions(Filter* filter) { return filter->filterRegion(); } 78 82 virtual FloatRect calculateEffectRect(Filter*); -
trunk/WebCore/platform/graphics/filters/SourceGraphic.cpp
r44655 r44810 55 55 void SourceGraphic::apply(Filter* filter) 56 56 { 57 IntRect bufferRect = enclosingIntRect(subRegion()); 58 OwnPtr<ImageBuffer> filterGraphic(ImageBuffer::create(bufferRect.size(), false)); 59 60 if (!filterGraphic.get()) 57 GraphicsContext* filterContext = getEffectContext(); 58 if (!filterContext) 61 59 return; 62 60 63 GraphicsContext* filterContext = filterGraphic->context();64 61 filterContext->drawImage(filter->sourceImage()->image(), IntPoint()); 65 66 setEffectBuffer(filterGraphic.release());67 62 } 68 63 -
trunk/WebCore/svg/graphics/filters/SVGFEFlood.cpp
r44655 r44810 67 67 void FEFlood::apply(Filter*) 68 68 { 69 IntRect bufferRect = enclosingIntRect(subRegion()); 70 OwnPtr<ImageBuffer> filterGraphic(ImageBuffer::create(bufferRect.size(), false)); 71 72 if (!filterGraphic) 69 GraphicsContext* filterContext = getEffectContext(); 70 if (!filterContext) 73 71 return; 74 72 75 73 Color color = colorWithOverrideAlpha(floodColor().rgb(), floodOpacity()); 76 GraphicsContext* filterContext = filterGraphic->context();77 74 filterContext->fillRect(FloatRect(FloatPoint(), subRegion().size()), color); 78 79 setEffectBuffer(filterGraphic.release());80 75 } 81 76 -
trunk/WebCore/svg/graphics/filters/SVGFEOffset.cpp
r44655 r44810 71 71 return; 72 72 73 IntRect bufferRect = enclosingIntRect(subRegion()); 74 OwnPtr<ImageBuffer> filterGraphic(ImageBuffer::create(bufferRect.size(), false)); 75 76 if (!filterGraphic) 73 GraphicsContext* filterContext = getEffectContext(); 74 if (!filterContext) 77 75 return; 78 76 … … 82 80 m_in->subRegion().height()); 83 81 84 GraphicsContext* filterContext = filterGraphic->context();85 82 filterContext->drawImage(m_in->resultImage()->image(), dstRect); 86 setEffectBuffer(filterGraphic.release());87 83 } 88 84
Note: See TracChangeset
for help on using the changeset viewer.