Changeset 86920 in webkit


Ignore:
Timestamp:
May 19, 2011 7:01:05 PM (13 years ago)
Author:
commit-queue@webkit.org
Message:

2011-05-19 Mike Lawther <mikelawther@chromium.org>

Reviewed by Simon Fraser.

implement image-rendering: optimize-contrast (with a vendor prefix) as defined in CSS3 image values
https://bugs.webkit.org/show_bug.cgi?id=56627

  • css3/images/optimize-contrast-canvas-expected.checksum: Added.
  • css3/images/optimize-contrast-canvas-expected.png: Added.
  • css3/images/optimize-contrast-canvas-expected.txt: Added.
  • css3/images/optimize-contrast-canvas.html: Added.
  • css3/images/optimize-contrast-image-expected.checksum: Added.
  • css3/images/optimize-contrast-image-expected.png: Added.
  • css3/images/optimize-contrast-image-expected.txt: Added.
  • css3/images/optimize-contrast-image.html: Added.

2011-05-19 Mike Lawther <mikelawther@chromium.org>

Reviewed by Simon Fraser.

implement image-rendering: optimize-contrast (with a vendor prefix) as defined in CSS3 image values
https://bugs.webkit.org/show_bug.cgi?id=56627

Tests: css3/images/optimize-contrast-canvas.html

css3/images/optimize-contrast-image.html

  • WebCore.xcodeproj/project.pbxproj:
  • css/CSSComputedStyleDeclaration.cpp: (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
  • css/CSSParser.cpp: (WebCore::CSSParser::parseValue):
  • css/CSSPrimitiveValueMappings.h: (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): (WebCore::CSSPrimitiveValue::operator EImageRendering):
  • css/CSSPropertyNames.in:
  • css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applyProperty):
  • css/CSSValueKeywords.in:
  • css/SVGCSSComputedStyleDeclaration.cpp: (WebCore::CSSComputedStyleDeclaration::getSVGPropertyCSSValue):
  • css/SVGCSSPropertyNames.in:
  • css/SVGCSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applySVGProperty):
  • css/SVGCSSValueKeywords.in:
  • html/HTMLCanvasElement.cpp: (WebCore::HTMLCanvasElement::paint):
  • html/HTMLCanvasElement.h:
  • platform/graphics/ImageRenderingMode.h: Added.
  • rendering/RenderBoxModelObject.cpp: (WebCore::ImageQualityController::shouldPaintAtLowQuality):
  • rendering/RenderHTMLCanvas.cpp: (WebCore::RenderHTMLCanvas::paintReplaced):
  • rendering/style/RenderStyle.cpp: (WebCore::RenderStyle::diff):
  • rendering/style/RenderStyle.h: (WebCore::InheritedFlags::imageRendering): (WebCore::InheritedFlags::setImageRendering): (WebCore::InheritedFlags::initialImageRendering):
  • rendering/style/RenderStyleConstants.h:
  • rendering/style/SVGRenderStyle.cpp: (WebCore::SVGRenderStyle::diff):
  • rendering/style/SVGRenderStyle.h: (WebCore::SVGRenderStyle::InheritedFlags::operator==): (WebCore::SVGRenderStyle::setBitDefaults):
  • rendering/style/SVGRenderStyleDefs.h:
  • rendering/svg/SVGRenderTreeAsText.cpp: (WebCore::writeStyle):
Location:
trunk
Files:
8 added
31 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r86914 r86920  
     12011-05-19  Mike Lawther  <mikelawther@chromium.org>
     2
     3        Reviewed by Simon Fraser.
     4
     5        implement image-rendering: optimize-contrast (with a vendor prefix) as defined in CSS3 image values
     6        https://bugs.webkit.org/show_bug.cgi?id=56627
     7
     8        * css3/images/optimize-contrast-canvas-expected.checksum: Added.
     9        * css3/images/optimize-contrast-canvas-expected.png: Added.
     10        * css3/images/optimize-contrast-canvas-expected.txt: Added.
     11        * css3/images/optimize-contrast-canvas.html: Added.
     12        * css3/images/optimize-contrast-image-expected.checksum: Added.
     13        * css3/images/optimize-contrast-image-expected.png: Added.
     14        * css3/images/optimize-contrast-image-expected.txt: Added.
     15        * css3/images/optimize-contrast-image.html: Added.
     16
    1172011-05-19  Justin Schuh  <jschuh@chromium.org>
    218
  • trunk/LayoutTests/fast/css/getComputedStyle/computed-style-expected.txt

    r81696 r86920  
    4444font-weight: normal;
    4545height: 576px;
     46image-rendering: auto;
    4647left: auto;
    4748letter-spacing: normal;
     
    201202fill-opacity: 1;
    202203fill-rule: nonzero;
    203 image-rendering: auto;
    204204marker-end: none;
    205205marker-mid: none;
  • trunk/LayoutTests/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt

    r80645 r86920  
    4343    font-weight: normal
    4444    height: 100px
     45    image-rendering: auto
    4546    left: auto
    4647    letter-spacing: normal
     
    191192    fill-opacity: 1
    192193    fill-rule: nonzero
    193     image-rendering: auto
    194194    marker-end: none
    195195    marker-mid: none
  • trunk/LayoutTests/platform/mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt

    r81697 r86920  
    4343    font-weight: normal
    4444    height: 100px
     45    image-rendering: auto
    4546    left: auto
    4647    letter-spacing: normal
     
    200201    fill-opacity: 1
    201202    fill-rule: nonzero
    202     image-rendering: auto
    203203    marker-end: none
    204204    marker-mid: none
  • trunk/LayoutTests/platform/qt/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt

    r81769 r86920  
    4343    font-weight: normal
    4444    height: 100px
     45    image-rendering: auto
    4546    left: auto
    4647    letter-spacing: normal
     
    200201    fill-opacity: 1
    201202    fill-rule: nonzero
    202     image-rendering: auto
    203203    marker-end: none
    204204    marker-mid: none
  • trunk/LayoutTests/svg/css/getComputedStyle-basic-expected.txt

    r81699 r86920  
    8585rect: style.getPropertyValue(height) : 0px
    8686rect: style.getPropertyCSSValue(height) : [object CSSPrimitiveValue]
     87rect: style.getPropertyValue(image-rendering) : auto
     88rect: style.getPropertyCSSValue(image-rendering) : [object CSSPrimitiveValue]
    8789rect: style.getPropertyValue(left) : auto
    8890rect: style.getPropertyCSSValue(left) : [object CSSPrimitiveValue]
     
    399401rect: style.getPropertyValue(fill-rule) : nonzero
    400402rect: style.getPropertyCSSValue(fill-rule) : [object CSSPrimitiveValue]
    401 rect: style.getPropertyValue(image-rendering) : auto
    402 rect: style.getPropertyCSSValue(image-rendering) : [object CSSPrimitiveValue]
    403403rect: style.getPropertyValue(marker-end) : none
    404404rect: style.getPropertyCSSValue(marker-end) : [object CSSPrimitiveValue]
     
    531531g: style.getPropertyValue(height) : 0px
    532532g: style.getPropertyCSSValue(height) : [object CSSPrimitiveValue]
     533g: style.getPropertyValue(image-rendering) : auto
     534g: style.getPropertyCSSValue(image-rendering) : [object CSSPrimitiveValue]
    533535g: style.getPropertyValue(left) : auto
    534536g: style.getPropertyCSSValue(left) : [object CSSPrimitiveValue]
     
    845847g: style.getPropertyValue(fill-rule) : nonzero
    846848g: style.getPropertyCSSValue(fill-rule) : [object CSSPrimitiveValue]
    847 g: style.getPropertyValue(image-rendering) : auto
    848 g: style.getPropertyCSSValue(image-rendering) : [object CSSPrimitiveValue]
    849849g: style.getPropertyValue(marker-end) : none
    850850g: style.getPropertyCSSValue(marker-end) : [object CSSPrimitiveValue]
  • trunk/Source/WebCore/ChangeLog

    r86905 r86920  
     12011-05-19  Mike Lawther  <mikelawther@chromium.org>
     2
     3        Reviewed by Simon Fraser.
     4
     5        implement image-rendering: optimize-contrast (with a vendor prefix) as defined in CSS3 image values
     6        https://bugs.webkit.org/show_bug.cgi?id=56627
     7
     8        Tests: css3/images/optimize-contrast-canvas.html
     9               css3/images/optimize-contrast-image.html
     10
     11        * WebCore.xcodeproj/project.pbxproj:
     12        * css/CSSComputedStyleDeclaration.cpp:
     13        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
     14        * css/CSSParser.cpp:
     15        (WebCore::CSSParser::parseValue):
     16        * css/CSSPrimitiveValueMappings.h:
     17        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
     18        (WebCore::CSSPrimitiveValue::operator EImageRendering):
     19        * css/CSSPropertyNames.in:
     20        * css/CSSStyleSelector.cpp:
     21        (WebCore::CSSStyleSelector::applyProperty):
     22        * css/CSSValueKeywords.in:
     23        * css/SVGCSSComputedStyleDeclaration.cpp:
     24        (WebCore::CSSComputedStyleDeclaration::getSVGPropertyCSSValue):
     25        * css/SVGCSSPropertyNames.in:
     26        * css/SVGCSSStyleSelector.cpp:
     27        (WebCore::CSSStyleSelector::applySVGProperty):
     28        * css/SVGCSSValueKeywords.in:
     29        * html/HTMLCanvasElement.cpp:
     30        (WebCore::HTMLCanvasElement::paint):
     31        * html/HTMLCanvasElement.h:
     32        * platform/graphics/ImageRenderingMode.h: Added.
     33        * rendering/RenderBoxModelObject.cpp:
     34        (WebCore::ImageQualityController::shouldPaintAtLowQuality):
     35        * rendering/RenderHTMLCanvas.cpp:
     36        (WebCore::RenderHTMLCanvas::paintReplaced):
     37        * rendering/style/RenderStyle.cpp:
     38        (WebCore::RenderStyle::diff):
     39        * rendering/style/RenderStyle.h:
     40        (WebCore::InheritedFlags::imageRendering):
     41        (WebCore::InheritedFlags::setImageRendering):
     42        (WebCore::InheritedFlags::initialImageRendering):
     43        * rendering/style/RenderStyleConstants.h:
     44        * rendering/style/SVGRenderStyle.cpp:
     45        (WebCore::SVGRenderStyle::diff):
     46        * rendering/style/SVGRenderStyle.h:
     47        (WebCore::SVGRenderStyle::InheritedFlags::operator==):
     48        (WebCore::SVGRenderStyle::setBitDefaults):
     49        * rendering/style/SVGRenderStyleDefs.h:
     50        * rendering/svg/SVGRenderTreeAsText.cpp:
     51        (WebCore::writeStyle):
     52
    1532011-05-18  Kenneth Russell  <kbr@google.com>
    254
  • trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj

    r86879 r86920  
    996996                490707E71219C04300D90E51 /* ANGLEWebKitBridge.h in Headers */ = {isa = PBXBuildFile; fileRef = 490707E51219C04300D90E51 /* ANGLEWebKitBridge.h */; };
    997997                492863991253B8FC00F792D6 /* ResourceLoadInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 492863981253B8FC00F792D6 /* ResourceLoadInfo.h */; settings = {ATTRIBUTES = (Private, ); }; };
     998                49291E4B134172C800E753DE /* ImageRenderingMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 49291E4A134172C800E753DE /* ImageRenderingMode.h */; };
    998999                493E5E0912D6420500020081 /* PlatformCALayerClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 493E5E0812D6420500020081 /* PlatformCALayerClient.h */; settings = {ATTRIBUTES = (Private, ); }; };
    9991000                49484FC1102CF23C00187DD3 /* CanvasGradient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 49484FB3102CF23C00187DD3 /* CanvasGradient.cpp */; };
     
    74957496                490707E51219C04300D90E51 /* ANGLEWebKitBridge.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ANGLEWebKitBridge.h; sourceTree = "<group>"; };
    74967497                492863981253B8FC00F792D6 /* ResourceLoadInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ResourceLoadInfo.h; sourceTree = "<group>"; };
     7498                49291E4A134172C800E753DE /* ImageRenderingMode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ImageRenderingMode.h; sourceTree = "<group>"; };
    74977499                493E5E0812D6420500020081 /* PlatformCALayerClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PlatformCALayerClient.h; path = ca/PlatformCALayerClient.h; sourceTree = "<group>"; };
    74987500                49484FB3102CF23C00187DD3 /* CanvasGradient.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CanvasGradient.cpp; path = canvas/CanvasGradient.cpp; sourceTree = "<group>"; };
     
    1772317725                                22BD9F7D1353625C009BD102 /* ImageBufferData.h */,
    1772417726                                BC7F44A70B9E324E00A9D081 /* ImageObserver.h */,
     17727                                49291E4A134172C800E753DE /* ImageRenderingMode.h */,
    1772517728                                B27535430B053814002CE64F /* ImageSource.h */,
    1772617729                                B27535440B053814002CE64F /* IntPoint.h */,
     
    2122421227                                089582560E857A7E00F82C83 /* ImageLoader.h in Headers */,
    2122521228                                BC7F44A80B9E324E00A9D081 /* ImageObserver.h in Headers */,
     21229                                49291E4B134172C800E753DE /* ImageRenderingMode.h in Headers */,
    2122621230                                B27535710B053814002CE64F /* ImageSource.h in Headers */,
    2122721231                                4B3480940EEF50D400AC1B41 /* ImageSourceCG.h in Headers */,
  • trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp

    r85418 r86920  
    100100    CSSPropertyFontWeight,
    101101    CSSPropertyHeight,
     102    CSSPropertyImageRendering,
    102103    CSSPropertyLeft,
    103104    CSSPropertyLetterSpacing,
     
    264265    CSSPropertyFillOpacity,
    265266    CSSPropertyFillRule,
    266     CSSPropertyImageRendering,
    267267    CSSPropertyMarkerEnd,
    268268    CSSPropertyMarkerMid,
     
    11571157                return primitiveValueCache->createIdentifierValue(CSSValueBorder);
    11581158            return primitiveValueCache->createIdentifierValue(CSSValueLines);
     1159        case CSSPropertyImageRendering:
     1160            return CSSPrimitiveValue::create(style->imageRendering());
    11591161        case CSSPropertyLeft:
    11601162            return getPositionOffsetValue(style.get(), CSSPropertyLeft, primitiveValueCache);
     
    17831785        case CSSPropertyFillOpacity:
    17841786        case CSSPropertyFillRule:
    1785         case CSSPropertyImageRendering:
    17861787        case CSSPropertyMarker:
    17871788        case CSSPropertyMarkerEnd:
  • trunk/Source/WebCore/css/CSSParser.cpp

    r86830 r86920  
    17171717            validPrimitive = true;
    17181718        break;
    1719 
     1719    case CSSPropertyImageRendering: // auto | optimizeContrast
     1720        if (id == CSSValueAuto || id == CSSValueWebkitOptimizeContrast)
     1721            validPrimitive = true;
     1722        break;
    17201723    // End of CSS3 properties
    17211724
  • trunk/Source/WebCore/css/CSSPrimitiveValueMappings.h

    r86120 r86920  
    29502950{
    29512951    switch (e) {
    2952         case IR_AUTO:
    2953             m_value.ident = CSSValueAuto;
    2954             break;
    2955         case IR_OPTIMIZESPEED:
    2956             m_value.ident = CSSValueOptimizespeed;
    2957             break;
    2958         case IR_OPTIMIZEQUALITY:
    2959             m_value.ident = CSSValueOptimizequality;
    2960             break;
     2952    case ImageRenderingAuto:
     2953        m_value.ident = CSSValueAuto;
     2954        break;
     2955    case ImageRenderingOptimizeSpeed:
     2956        m_value.ident = CSSValueOptimizespeed;
     2957        break;
     2958    case ImageRenderingOptimizeQuality:
     2959        m_value.ident = CSSValueOptimizequality;
     2960        break;
     2961    case ImageRenderingOptimizeContrast:
     2962        m_value.ident = CSSValueWebkitOptimizeContrast;
     2963        break;
    29612964    }
    29622965}
     
    29652968{
    29662969    switch (m_value.ident) {
    2967         case CSSValueAuto:
    2968             return IR_AUTO;
    2969         case CSSValueOptimizespeed:
    2970             return IR_OPTIMIZESPEED;
    2971         case CSSValueOptimizequality:
    2972             return IR_OPTIMIZEQUALITY;
    2973         default:
    2974             ASSERT_NOT_REACHED();
    2975             return IR_AUTO;
     2970    case CSSValueAuto:
     2971        return ImageRenderingAuto;
     2972    case CSSValueOptimizespeed:
     2973        return ImageRenderingOptimizeSpeed;
     2974    case CSSValueOptimizequality:
     2975        return ImageRenderingOptimizeQuality;
     2976    case CSSValueWebkitOptimizeContrast:
     2977        return ImageRenderingOptimizeContrast;
     2978    default:
     2979        ASSERT_NOT_REACHED();
     2980        return ImageRenderingAuto;
    29762981    }
    29772982}
  • trunk/Source/WebCore/css/CSSPropertyNames.in

    r85257 r86920  
    9494font-stretch
    9595height
     96image-rendering
    9697left
    9798letter-spacing
  • trunk/Source/WebCore/css/CSSStyleSelector.cpp

    r86771 r86920  
    46964696        HANDLE_INHERIT_AND_INITIAL(outlineOffset, OutlineOffset)
    46974697        m_style->setOutlineOffset(primitiveValue->computeLengthInt(style(), m_rootElementStyle, zoomFactor));
     4698        return;
     4699    case CSSPropertyImageRendering:
     4700        if (!primitiveValue)
     4701            return;
     4702        m_style->setImageRendering(*primitiveValue);
    46984703        return;
    46994704    case CSSPropertyTextRendering: {
  • trunk/Source/WebCore/css/CSSValueKeywords.in

    r82482 r86920  
    804804replaced
    805805
    806 
     806# image-rendering
     807#auto
     808#optimizeSpeed
     809optimizeQuality
     810-webkit-optimize-contrast
  • trunk/Source/WebCore/css/SVGCSSComputedStyleDeclaration.cpp

    r79985 r86920  
    104104        case CSSPropertyColorRendering:
    105105            return CSSPrimitiveValue::create(svgStyle->colorRendering());
    106         case CSSPropertyImageRendering:
    107             return CSSPrimitiveValue::create(svgStyle->imageRendering());
    108106        case CSSPropertyShapeRendering:
    109107            return CSSPrimitiveValue::create(svgStyle->shapeRendering());
  • trunk/Source/WebCore/css/SVGCSSPropertyNames.in

    r60885 r86920  
    2424fill-rule
    2525#font-size-adjust
    26 image-rendering
     26#image-rendering
    2727marker
    2828marker-end
  • trunk/Source/WebCore/css/SVGCSSStyleSelector.cpp

    r85603 r86920  
    215215            break;
    216216        }
    217         case CSSPropertyImageRendering:
    218         {
    219             HANDLE_INHERIT_AND_INITIAL(imageRendering, ImageRendering)
    220             if (primitiveValue)
    221                 svgstyle->setImageRendering(*primitiveValue);
    222             break;
    223         }
    224217        case CSSPropertyShapeRendering:
    225218        {
  • trunk/Source/WebCore/css/SVGCSSValueKeywords.in

    r67667 r86920  
    198198#auto
    199199#optimizeSpeed
    200 optimizeQuality
     200#optimizeQuality
    201201
    202202## CSS_PROP_FILL
  • trunk/Source/WebCore/html/HTMLCanvasElement.cpp

    r85760 r86920  
    263263}
    264264
    265 void HTMLCanvasElement::paint(GraphicsContext* context, const IntRect& r)
     265void HTMLCanvasElement::paint(GraphicsContext* context, const IntRect& r, bool useLowQualityScale)
    266266{
    267267    // Clear the dirty rect
     
    281281        if (imageBuffer) {
    282282            if (m_presentedImage)
    283                 context->drawImage(m_presentedImage.get(), ColorSpaceDeviceRGB, r);
     283                context->drawImage(m_presentedImage.get(), ColorSpaceDeviceRGB, r, CompositeSourceOver, useLowQualityScale);
    284284            else if (imageBuffer->drawsUsingCopy())
    285                 context->drawImage(copiedImage(), ColorSpaceDeviceRGB, r);
     285                context->drawImage(copiedImage(), ColorSpaceDeviceRGB, r, CompositeSourceOver, useLowQualityScale);
    286286            else
    287                 context->drawImageBuffer(imageBuffer, ColorSpaceDeviceRGB, r);
     287                context->drawImageBuffer(imageBuffer, ColorSpaceDeviceRGB, r, CompositeSourceOver, useLowQualityScale);
    288288        }
    289289    }
  • trunk/Source/WebCore/html/HTMLCanvasElement.h

    r85760 r86920  
    9898    void didDraw(const FloatRect&);
    9999
    100     void paint(GraphicsContext*, const IntRect&);
     100    void paint(GraphicsContext*, const IntRect&, bool useLowQualityScale = false);
    101101
    102102    GraphicsContext* drawingContext() const;
  • trunk/Source/WebCore/rendering/RenderBoxModelObject.cpp

    r86451 r86920  
    140140        return false;
    141141
     142    if (object->style()->imageRendering() == ImageRenderingOptimizeContrast)
     143        return true;
     144   
    142145    // Make sure to use the unzoomed image size, since if a full page zoom is in effect, the image
    143146    // is actually being scaled.
  • trunk/Source/WebCore/rendering/RenderHTMLCanvas.cpp

    r79920 r86920  
    5959    IntRect rect = contentBoxRect();
    6060    rect.move(tx, ty);
    61     static_cast<HTMLCanvasElement*>(node())->paint(paintInfo.context, rect);
     61    bool useLowQualityScale = style()->imageRendering() == ImageRenderingOptimizeContrast;
     62    static_cast<HTMLCanvasElement*>(node())->paint(paintInfo.context, rect, useLowQualityScale);
    6263}
    6364
  • trunk/Source/WebCore/rendering/style/RenderStyle.cpp

    r85027 r86920  
    561561        || rareInheritedData->textStrokeColor != other->rareInheritedData->textStrokeColor
    562562        || rareInheritedData->textEmphasisColor != other->rareInheritedData->textEmphasisColor
    563         || rareInheritedData->textEmphasisFill != other->rareInheritedData->textEmphasisFill)
     563        || rareInheritedData->textEmphasisFill != other->rareInheritedData->textEmphasisFill
     564        || rareInheritedData->m_imageRendering != other->rareInheritedData->m_imageRendering)
    564565        return StyleDifferenceRepaint;
    565566
  • trunk/Source/WebCore/rendering/style/RenderStyle.h

    r86040 r86920  
    784784    bool isFlippedBlocksWritingMode() const { return writingMode() == RightToLeftWritingMode || writingMode() == BottomToTopWritingMode; }
    785785
     786    EImageRendering imageRendering() const { return static_cast<EImageRendering>(rareInheritedData->m_imageRendering); }
     787   
    786788    ESpeak speak() { return static_cast<ESpeak>(rareInheritedData->speak); }
    787789       
     
    935937    void setZoom(float f) { SET_VAR(visual, m_zoom, f); setEffectiveZoom(effectiveZoom() * zoom()); }
    936938    void setEffectiveZoom(float f) { SET_VAR(rareInheritedData, m_effectiveZoom, f) }
     939    void setImageRendering(EImageRendering v) { SET_VAR(rareInheritedData, m_imageRendering, v) }
    937940
    938941    void setWhiteSpace(EWhiteSpace v) { inherited_flags._white_space = v; }
     
    13181321    static TextEmphasisPosition initialTextEmphasisPosition() { return TextEmphasisPositionOver; }
    13191322    static LineBoxContain initialLineBoxContain() { return LineBoxContainBlock | LineBoxContainInline | LineBoxContainReplaced; }
     1323    static EImageRendering initialImageRendering() { return ImageRenderingAuto; }
    13201324
    13211325    // Keep these at the end.
  • trunk/Source/WebCore/rendering/style/RenderStyleConstants.h

    r85811 r86920  
    427427enum TextEmphasisPosition { TextEmphasisPositionOver, TextEmphasisPositionUnder };
    428428
     429enum EImageRendering { ImageRenderingAuto, ImageRenderingOptimizeSpeed, ImageRenderingOptimizeQuality, ImageRenderingOptimizeContrast };
     430   
    429431} // namespace WebCore
    430432
  • trunk/Source/WebCore/rendering/style/SVGRenderStyle.cpp

    r86331 r86920  
    204204    // Changes of these flags only cause repaints.
    205205    if (svg_inherited_flags._colorRendering != other->svg_inherited_flags._colorRendering
    206         || svg_inherited_flags._imageRendering != other->svg_inherited_flags._imageRendering
    207206        || svg_inherited_flags._shapeRendering != other->svg_inherited_flags._shapeRendering
    208207        || svg_inherited_flags._clipRule != other->svg_inherited_flags._clipRule
  • trunk/Source/WebCore/rendering/style/SVGRenderStyle.h

    r79985 r86920  
    6464    static EColorRendering initialColorRendering() { return CR_AUTO; }
    6565    static WindRule initialFillRule() { return RULE_NONZERO; }
    66     static EImageRendering initialImageRendering() { return IR_AUTO; }
    6766    static LineJoin initialJoinStyle() { return MiterJoin; }
    6867    static EShapeRendering initialShapeRendering() { return SR_AUTO; }
     
    141140    void setColorRendering(EColorRendering val) { svg_inherited_flags._colorRendering = val; }
    142141    void setFillRule(WindRule val) { svg_inherited_flags._fillRule = val; }
    143     void setImageRendering(EImageRendering val) { svg_inherited_flags._imageRendering = val; }
    144142    void setJoinStyle(LineJoin val) { svg_inherited_flags._joinStyle = val; }
    145143    void setShapeRendering(EShapeRendering val) { svg_inherited_flags._shapeRendering = val; }
     
    298296    EColorRendering colorRendering() const { return (EColorRendering) svg_inherited_flags._colorRendering; }
    299297    WindRule fillRule() const { return (WindRule) svg_inherited_flags._fillRule; }
    300     EImageRendering imageRendering() const { return (EImageRendering) svg_inherited_flags._imageRendering; }
    301298    LineJoin joinStyle() const { return (LineJoin) svg_inherited_flags._joinStyle; }
    302299    EShapeRendering shapeRendering() const { return (EShapeRendering) svg_inherited_flags._shapeRendering; }
     
    347344        {
    348345            return (_colorRendering == other._colorRendering)
    349                 && (_imageRendering == other._imageRendering)
    350346                && (_shapeRendering == other._shapeRendering)
    351347                && (_clipRule == other._clipRule)
     
    367363
    368364        unsigned _colorRendering : 2; // EColorRendering
    369         unsigned _imageRendering : 2; // EImageRendering
    370365        unsigned _shapeRendering : 2; // EShapeRendering
    371366        unsigned _clipRule : 1; // WindRule
     
    423418        svg_inherited_flags._colorRendering = initialColorRendering();
    424419        svg_inherited_flags._fillRule = initialFillRule();
    425         svg_inherited_flags._imageRendering = initialImageRendering();
    426420        svg_inherited_flags._shapeRendering = initialShapeRendering();
    427421        svg_inherited_flags._textAnchor = initialTextAnchor();
  • trunk/Source/WebCore/rendering/style/SVGRenderStyleDefs.h

    r79985 r86920  
    5555        CR_AUTO, CR_OPTIMIZESPEED, CR_OPTIMIZEQUALITY
    5656    };
    57    
    58     enum EImageRendering {
    59         IR_AUTO, IR_OPTIMIZESPEED, IR_OPTIMIZEQUALITY
    60     };
    61 
    6257    enum EShapeRendering {
    6358        SR_AUTO, SR_OPTIMIZESPEED, SR_CRISPEDGES, SR_GEOMETRICPRECISION
  • trunk/Source/WebCore/rendering/style/StyleRareInheritedData.cpp

    r85603 r86920  
    5353    , textEmphasisPosition(TextEmphasisPositionOver)
    5454    , m_lineBoxContain(RenderStyle::initialLineBoxContain())
     55    , m_imageRendering(RenderStyle::initialImageRendering())
    5556    , hyphenationLimitBefore(-1)
    5657    , hyphenationLimitAfter(-1)
     
    8788    , textEmphasisPosition(o.textEmphasisPosition)
    8889    , m_lineBoxContain(o.m_lineBoxContain)
     90    , m_imageRendering(o.m_imageRendering)
    8991    , hyphenationString(o.hyphenationString)
    9092    , hyphenationLimitBefore(o.hyphenationLimitBefore)
     
    142144        && locale == o.locale
    143145        && textEmphasisCustomMark == o.textEmphasisCustomMark
    144         && *quotes == *o.quotes;
     146        && *quotes == *o.quotes
     147        && m_imageRendering == o.m_imageRendering;
    145148}
    146149
  • trunk/Source/WebCore/rendering/style/StyleRareInheritedData.h

    r85027 r86920  
    8686    unsigned textEmphasisPosition : 1; // TextEmphasisPosition
    8787    unsigned m_lineBoxContain: 7; // LineBoxContain
     88    // CSS Image Values Level 3
     89    unsigned m_imageRendering : 2; // EImageRendering
     90
    8891
    8992    AtomicString hyphenationString;
  • trunk/Source/WebCore/rendering/svg/SVGRenderTreeAsText.cpp

    r86765 r86920  
    288288    if (!object.localTransform().isIdentity())
    289289        writeNameValuePair(ts, "transform", object.localTransform());
    290     writeIfNotDefault(ts, "image rendering", svgStyle->imageRendering(), SVGRenderStyle::initialImageRendering());
     290    writeIfNotDefault(ts, "image rendering", style->imageRendering(), RenderStyle::initialImageRendering());
    291291    writeIfNotDefault(ts, "opacity", style->opacity(), RenderStyle::initialOpacity());
    292292    if (object.isSVGPath()) {
Note: See TracChangeset for help on using the changeset viewer.