Changeset 102195 in webkit
- Timestamp:
- Dec 6, 2011, 5:03:17 PM (15 years ago)
- Location:
- branches/safari-534.53-branch/Source/WebCore
- Files:
-
- 7 edited
-
ChangeLog (modified) (1 diff)
-
editing/DeleteButtonController.cpp (modified) (1 diff)
-
page/Page.cpp (modified) (2 diffs)
-
page/Page.h (modified) (2 diffs)
-
rendering/RenderBoxModelObject.cpp (modified) (2 diffs)
-
rendering/RenderImage.cpp (modified) (2 diffs)
-
rendering/RenderLayer.cpp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
branches/safari-534.53-branch/Source/WebCore/ChangeLog
r102193 r102195 1 2011-12-06 Lucas Forschler <lforschler@apple.com> 2 3 Merge 95697 4 5 2011-09-21 Beth Dakin <bdakin@apple.com> 6 7 https://bugs.webkit.org/show_bug.cgi?id=67415 8 Text drawn via -webkit-background-clip:text is blurry at device scale factors >1.0 9 -and corresponding- 10 <rdar://problem/10060379> 11 12 Reviewed by Darin Adler. 13 14 New helper function RenderBoxModelObject scales the mask image by the 15 deviceScaleFactor to get an image of the appropriate resolution. It also scales 16 the image's GraphicsContext so that the clip is set up on the same scale. Back in 17 paintFillLayerExtended() we still clip the image to the original maskRect to get 18 everything scaled back to the appropriate size. 19 * rendering/RenderBoxModelObject.cpp: 20 (WebCore::createDeviceScaledImageBuffer): 21 (WebCore::RenderBoxModelObject::paintFillLayerExtended): 22 23 Make the deviceScaleFactor convenience function just a namespace-level function in 24 Page rather than a static member or Page. 25 * page/Page.cpp: 26 (WebCore::deviceScaleFactor): 27 * page/Page.h: 28 29 Pre-existing callers of Page::deviceScaleFactor(Frame*) must now use 30 WebCore::deviceScaleFactor(Frame*) 31 * editing/DeleteButtonController.cpp: 32 (WebCore::DeleteButtonController::createDeletionUI): 33 * rendering/RenderImage.cpp: 34 (WebCore::RenderImage::imageSizeForError): 35 (WebCore::RenderImage::paintReplaced): 36 * rendering/RenderLayer.cpp: 37 (WebCore::RenderLayer::drawPlatformResizerImage): 38 1 39 2011-12-06 Lucas Forschler <lforschler@apple.com> 2 40 -
branches/safari-534.53-branch/Source/WebCore/editing/DeleteButtonController.cpp
r102192 r102195 256 256 style->setProperty(CSSPropertyVisibility, CSSValueVisible); 257 257 258 float deviceScaleFactor = Page::deviceScaleFactor(m_frame);258 float deviceScaleFactor = WebCore::deviceScaleFactor(m_frame); 259 259 RefPtr<Image> buttonImage; 260 260 if (deviceScaleFactor >= 2) -
branches/safari-534.53-branch/Source/WebCore/page/Page.cpp
r102192 r102195 114 114 } 115 115 116 float deviceScaleFactor(Frame* frame) 117 { 118 if (!frame) 119 return 1; 120 Page* page = frame->page(); 121 if (!page) 122 return 1; 123 return page->deviceScaleFactor(); 124 } 125 116 126 Page::Page(PageClients& pageClients) 117 127 : m_chrome(adoptPtr(new Chrome(this, pageClients.chromeClient))) … … 614 624 } 615 625 616 float Page::deviceScaleFactor(Frame* frame)617 {618 if (!frame)619 return 1;620 Page* page = frame->page();621 if (!page)622 return 1;623 return page->deviceScaleFactor();624 }625 626 626 void Page::didMoveOnscreen() 627 627 { -
branches/safari-534.53-branch/Source/WebCore/page/Page.h
r102032 r102195 96 96 enum FindDirection { FindDirectionForward, FindDirectionBackward }; 97 97 98 float deviceScaleFactor(Frame*); 99 98 100 class Page { 99 101 WTF_MAKE_NONCOPYABLE(Page); … … 246 248 float deviceScaleFactor() const { return m_deviceScaleFactor; } 247 249 void setDeviceScaleFactor(float); 248 static float deviceScaleFactor(Frame*);249 250 250 251 // Notifications when the Page starts and stops being presented via a native window. -
branches/safari-534.53-branch/Source/WebCore/rendering/RenderBoxModelObject.cpp
r102189 r102195 586 586 return adjustedRect; 587 587 } 588 589 static PassOwnPtr<ImageBuffer> createDeviceScaledImageBuffer(IntSize imageSize, float deviceScaleFactor) 590 { 591 // To create an image of the appropriate resolution, we need to scale imageRect's size 592 // by the device scale factor. 593 IntSize scaledImageSize = imageSize; 594 scaledImageSize.scale(deviceScaleFactor); 595 596 OwnPtr<ImageBuffer> scaledImageBuffer = ImageBuffer::create(scaledImageSize); 597 if (!scaledImageBuffer) 598 return nullptr; 599 600 // Scale the whole context by the device scale factor so that all of the clips set up at 601 // the appropriate size. 602 scaledImageBuffer->context()->scale(FloatSize(deviceScaleFactor, deviceScaleFactor)); 603 604 return scaledImageBuffer.release(); 605 } 588 606 589 607 void RenderBoxModelObject::paintFillLayerExtended(const PaintInfo& paintInfo, const Color& color, const FillLayer* bgLayer, const IntRect& rect, … … 680 698 681 699 // Now create the mask. 682 OwnPtr<ImageBuffer> maskImage = ImageBuffer::create(maskRect.size());700 OwnPtr<ImageBuffer> maskImage = createDeviceScaledImageBuffer(maskRect.size(), WebCore::deviceScaleFactor(frame())); 683 701 if (!maskImage) 684 702 return; -
branches/safari-534.53-branch/Source/WebCore/rendering/RenderImage.cpp
r102176 r102195 88 88 IntSize imageSize; 89 89 if (newImage->willPaintBrokenImage()) { 90 float deviceScaleFactor = Page::deviceScaleFactor(frame());90 float deviceScaleFactor = WebCore::deviceScaleFactor(frame()); 91 91 pair<Image*, float> brokenImageAndImageScaleFactor = newImage->brokenImage(deviceScaleFactor); 92 92 imageSize = brokenImageAndImageScaleFactor.first->size(); … … 275 275 276 276 if (m_imageResource->errorOccurred() && !image->isNull() && usableWidth >= image->width() && usableHeight >= image->height()) { 277 float deviceScaleFactor = Page::deviceScaleFactor(frame());277 float deviceScaleFactor = WebCore::deviceScaleFactor(frame()); 278 278 // Call brokenImage() explicitly to ensure we get the broken image icon at the appropriate resolution. 279 279 pair<Image*, float> brokenImageAndImageScaleFactor = m_imageResource->cachedImage()->brokenImage(deviceScaleFactor); -
branches/safari-534.53-branch/Source/WebCore/rendering/RenderLayer.cpp
r102054 r102195 2366 2366 void RenderLayer::drawPlatformResizerImage(GraphicsContext* context, IntRect resizerCornerRect) 2367 2367 { 2368 float deviceScaleFactor = Page::deviceScaleFactor(renderer()->frame());2368 float deviceScaleFactor = WebCore::deviceScaleFactor(renderer()->frame()); 2369 2369 2370 2370 RefPtr<Image> resizeCornerImage;
Note:
See TracChangeset
for help on using the changeset viewer.