Changeset 74386 in webkit


Ignore:
Timestamp:
Dec 20, 2010 8:32:33 PM (13 years ago)
Author:
morrita@google.com
Message:

2010-12-17 MORITA Hajime <morrita@google.com>

Reviewed by James Robinson.

https://bugs.webkit.org/show_bug.cgi?id=51240
[Chromium][Skia] Border with a color with alpha != 1 breaks webkit gradient on skia.

  • fast/gradients/gradient-after-transparent-border-expected.txt: Added.
  • fast/gradients/gradient-after-transparent-border.html: Added.
  • platform/chromium-win/fast/gradients/gradient-after-transparent-border-expected.checksum: Added.
  • platform/chromium-win/fast/gradients/gradient-after-transparent-border-expected.png: Added.

2010-12-17 MORITA Hajime <morrita@google.com>

Reviewed by James Robinson.

https://bugs.webkit.org/show_bug.cgi?id=51240
[Chromium][Skia] Border with a color with alpha != 1 breaks webkit gradient on skia.

Even after a shader was set, old color value had been remaining and passed to Skia.
Then Skia refered an alpha component of that color to make pixels transparent.
This change invalidates existing color value when a shader is given,
which means the renderer will paint shapes with gradients or patterns.

Test: fast/gradients/gradient-after-transparent-border.html

  • platform/graphics/skia/PlatformContextSkia.cpp: (WebCore::PlatformContextSkia::setStrokeShader): (WebCore::PlatformContextSkia::setFillShader):
Location:
trunk
Files:
4 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r74385 r74386  
     12010-12-17  MORITA Hajime  <morrita@google.com>
     2
     3        Reviewed by James Robinson.
     4
     5        https://bugs.webkit.org/show_bug.cgi?id=51240
     6        [Chromium][Skia] Border with a color with alpha != 1 breaks webkit gradient on skia.
     7
     8        * fast/gradients/gradient-after-transparent-border-expected.txt: Added.
     9        * fast/gradients/gradient-after-transparent-border.html: Added.
     10        * platform/chromium-win/fast/gradients/gradient-after-transparent-border-expected.checksum: Added.
     11        * platform/chromium-win/fast/gradients/gradient-after-transparent-border-expected.png: Added.
     12
    1132010-12-20  Xiaomei Ji  <xji@chromium.org>
    214
  • trunk/WebCore/ChangeLog

    r74385 r74386  
     12010-12-17  MORITA Hajime  <morrita@google.com>
     2
     3        Reviewed by James Robinson.
     4
     5        https://bugs.webkit.org/show_bug.cgi?id=51240
     6        [Chromium][Skia] Border with a color with alpha != 1 breaks webkit gradient on skia.
     7
     8        Even after a shader was set, old color value had been remaining and passed to Skia.
     9        Then Skia refered an alpha component of that color to make pixels transparent.
     10        This change invalidates existing color value when a shader is given,
     11        which means the renderer will paint shapes with gradients or patterns.
     12       
     13        Test: fast/gradients/gradient-after-transparent-border.html
     14
     15        * platform/graphics/skia/PlatformContextSkia.cpp:
     16        (WebCore::PlatformContextSkia::setStrokeShader):
     17        (WebCore::PlatformContextSkia::setFillShader):
     18
    1192010-12-20  Xiaomei Ji  <xji@chromium.org>
    220
  • trunk/WebCore/platform/graphics/skia/PlatformContextSkia.cpp

    r74089 r74386  
    498498void PlatformContextSkia::setStrokeShader(SkShader* strokeShader)
    499499{
     500    if (strokeShader)
     501        m_state->m_strokeColor = Color::black;
     502
    500503    if (strokeShader != m_state->m_strokeShader) {
    501504        SkSafeUnref(m_state->m_strokeShader);
     
    582585void PlatformContextSkia::setFillShader(SkShader* fillShader)
    583586{
     587    if (fillShader)
     588        m_state->m_fillColor = Color::black;
     589
    584590    if (fillShader != m_state->m_fillShader) {
    585591        SkSafeUnref(m_state->m_fillShader);
Note: See TracChangeset for help on using the changeset viewer.