Changeset 148208 in webkit
- Timestamp:
- Apr 11, 2013 9:19:39 AM (11 years ago)
- Location:
- trunk
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r148206 r148208 1 2013-04-04 Allan Sandfeld Jensen <allan.jensen@digia.com> 2 3 Use CSS4 image-rendering to determing image scaling quality 4 https://bugs.webkit.org/show_bug.cgi?id=113405 5 6 Reviewed by Simon Fraser. 7 8 Implement the new CSS4 image-rendering property values. 9 10 Image scaling now uses low-quality (pixelated) scaling for 11 crisp-edges, pixelated and optimizeSpeed values, and always 12 use high quality (smooth) scaling for -webkit-smooth and 13 optimizeQuality. The latter can be used to disable low quality 14 scaling during CSS animations or live resizing. 15 16 The new values are protected with a new CSS4_IMAGES feature, but 17 the crisp-edge value has been introduced before to displace the 18 deprecated -webkit-optimize-contrast value, and optimizeSpeed 19 and optimizeQuality values are supported for SVG compatibility. 20 21 * css/CSSParser.cpp: 22 (WebCore::isValidKeywordPropertyAndValue): 23 * css/CSSPrimitiveValueMappings.h: 24 (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): 25 (WebCore::CSSPrimitiveValue::operator EImageRendering): 26 * css/CSSValueKeywords.in: 27 * rendering/RenderBoxModelObject.cpp: 28 (WebCore::ImageQualityController::shouldPaintAtLowQuality): 29 * rendering/RenderHTMLCanvas.cpp: 30 (WebCore::RenderHTMLCanvas::paintReplaced): 31 * rendering/style/RenderStyleConstants.h: 32 1 33 2013-04-11 Adenilson Cavalcanti <cavalcantii@gmail.com> 2 34 -
trunk/Source/WebCore/css/CSSParser.cpp
r148205 r148208 727 727 return true; 728 728 break; 729 case CSSPropertyImageRendering: // auto | optimizeContrast 730 if (valueID == CSSValueAuto || valueID == CSSValueWebkitOptimizeContrast) 729 case CSSPropertyImageRendering: // auto | crisp-edges | pixelated | -webkit-smooth | optimizeSpeed | optimizeQuality | -webkit-optimize-contrast 730 #if ENABLE(CSS4_IMAGES) 731 if (valueID == CSSValueAuto || valueID == CSSValueCrispEdges || valueID == CSSValuePixelated 732 || valueID == CSSValueWebkitSmooth || valueID == CSSValueWebkitOptimizeContrast 733 || valueID == CSSValueOptimizespeed || valueID == CSSValueOptimizequality) 731 734 return true; 735 #else 736 if (valueID == CSSValueAuto || valueID == CSSValueCrispEdges || valueID == CSSValueWebkitOptimizeContrast 737 || valueID == CSSValueOptimizespeed || valueID == CSSValueOptimizequality) 738 return true; 739 #endif 732 740 break; 733 741 case CSSPropertyListStylePosition: // inside | outside | inherit -
trunk/Source/WebCore/css/CSSPrimitiveValueMappings.h
r148070 r148208 4032 4032 m_value.ident = CSSValueAuto; 4033 4033 break; 4034 case ImageRenderingCrispEdges: 4035 m_value.ident = CSSValueCrispEdges; 4036 break; 4037 case ImageRenderingPixelated: 4038 m_value.ident = CSSValuePixelated; 4039 break; 4040 case ImageRenderingSmooth: 4041 m_value.ident = CSSValueWebkitSmooth; 4042 break; 4034 4043 case ImageRenderingOptimizeSpeed: 4035 4044 m_value.ident = CSSValueOptimizespeed; … … 4038 4047 m_value.ident = CSSValueOptimizequality; 4039 4048 break; 4040 case ImageRenderingOptimizeContrast:4041 m_value.ident = CSSValueWebkitOptimizeContrast;4042 break;4043 4049 } 4044 4050 } … … 4049 4055 case CSSValueAuto: 4050 4056 return ImageRenderingAuto; 4057 case CSSValueWebkitOptimizeContrast: 4058 case CSSValueCrispEdges: 4059 return ImageRenderingCrispEdges; 4060 case CSSValuePixelated: 4061 return ImageRenderingPixelated; 4062 case CSSValueWebkitSmooth: 4063 return ImageRenderingSmooth; 4051 4064 case CSSValueOptimizespeed: 4052 4065 return ImageRenderingOptimizeSpeed; 4053 4066 case CSSValueOptimizequality: 4054 4067 return ImageRenderingOptimizeQuality; 4055 case CSSValueWebkitOptimizeContrast:4056 return ImageRenderingOptimizeContrast;4057 4068 } 4058 4069 -
trunk/Source/WebCore/css/CSSValueKeywords.in
r148070 r148208 933 933 934 934 // image-rendering 935 //auto 936 //optimizeSpeed 935 // auto 936 // optimizeSpeed 937 crisp-edges 938 pixelated 939 -webkit-smooth 937 940 optimizeQuality 938 941 -webkit-optimize-contrast -
trunk/Source/WebCore/rendering/RenderBoxModelObject.cpp
r148172 r148208 162 162 return false; 163 163 164 if (object->style()->imageRendering() == ImageRenderingOptimizeContrast) 164 switch (object->style()->imageRendering()) { 165 case ImageRenderingOptimizeSpeed: 166 case ImageRenderingCrispEdges: 167 case ImageRenderingPixelated: 165 168 return true; 166 169 case ImageRenderingOptimizeQuality: 170 case ImageRenderingSmooth: 171 return false; 172 case ImageRenderingAuto: 173 break; 174 } 175 167 176 // Make sure to use the unzoomed image size, since if a full page zoom is in effect, the image 168 177 // is actually being scaled. -
trunk/Source/WebCore/rendering/RenderHTMLCanvas.cpp
r133172 r148208 69 69 } 70 70 71 bool useLowQualityScale = style()->imageRendering() == ImageRendering OptimizeContrast;71 bool useLowQualityScale = style()->imageRendering() == ImageRenderingPixelated || style()->imageRendering() == ImageRenderingCrispEdges || style()->imageRendering() == ImageRenderingOptimizeSpeed; 72 72 static_cast<HTMLCanvasElement*>(node())->paint(paintInfo.context, rect, useLowQualityScale); 73 73 } -
trunk/Source/WebCore/rendering/style/RenderStyleConstants.h
r148070 r148208 480 480 enum TextOverflow { TextOverflowClip = 0, TextOverflowEllipsis }; 481 481 482 enum EImageRendering { ImageRenderingAuto, ImageRenderingOptimizeSpeed, ImageRenderingOptimizeQuality, ImageRenderingOptimizeContrast }; 482 enum EImageRendering { 483 ImageRenderingAuto, ImageRenderingOptimizeSpeed, ImageRenderingOptimizeQuality, 484 ImageRenderingCrispEdges, ImageRenderingPixelated, ImageRenderingSmooth 485 }; 483 486 484 487 enum ImageResolutionSource { ImageResolutionSpecified = 0, ImageResolutionFromImage }; -
trunk/Tools/ChangeLog
r148190 r148208 1 2013-04-04 Allan Sandfeld Jensen <allan.jensen@digia.com> 2 3 Use CSS4 image-rendering to determing image scaling quality 4 https://bugs.webkit.org/show_bug.cgi?id=113405 5 6 Reviewed by Simon Fraser. 7 8 Introduce new flag to enable experimental support for CSS4 Images. 9 10 * Scripts/webkitperl/FeatureList.pm: 11 1 12 2013-04-11 Ryosuke Niwa <rniwa@webkit.org> 2 13 -
trunk/Tools/Scripts/webkitperl/FeatureList.pm
r148088 r148208 54 54 $css3TextSupport, 55 55 $css3TextLineBreakSupport, 56 $css4ImagesSupport, 56 57 $cssBoxDecorationBreakSupport, 57 58 $cssDeviceAdaptation, … … 199 200 define => "ENABLE_CSS3_TEXT_LINE_BREAK", default => 0, value => \$css3TextLineBreakSupport }, 200 201 202 { option => "css4-images", desc => "Toggle CSS4 Images support", 203 define => "ENABLE_CSS4_IMAGES", default => 0, value => \$css4ImagesSupport }, 204 201 205 { option => "css-box-decoration-break", desc => "Toggle CSS box-decoration-break support", 202 206 define => "ENABLE_CSS_BOX_DECORATION_BREAK", default => 1, value => \$cssBoxDecorationBreakSupport },
Note: See TracChangeset
for help on using the changeset viewer.