Changeset 270040 in webkit


Ignore:
Timestamp:
Nov 19, 2020 11:43:15 AM (3 years ago)
Author:
Fujii Hironori
Message:

[TextureMapperGL] The invert filter wrongly inverts pre-multiplied alpha color
https://bugs.webkit.org/show_bug.cgi?id=219144

Reviewed by Carlos Garcia Campos.

Source/WebCore:

Test: compositing/filters/invert-transparent.html

  • platform/graphics/texmap/TextureMapperShaderProgram.cpp: Take alpha value as an argument.

LayoutTests:

  • compositing/filters/invert-transparent-expected.html: Added.
  • compositing/filters/invert-transparent.html: Added.
Location:
trunk
Files:
2 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r270037 r270040  
     12020-11-19  Fujii Hironori  <Hironori.Fujii@sony.com>
     2
     3        [TextureMapperGL] The invert filter wrongly inverts pre-multiplied alpha color
     4        https://bugs.webkit.org/show_bug.cgi?id=219144
     5
     6        Reviewed by Carlos Garcia Campos.
     7
     8        * compositing/filters/invert-transparent-expected.html: Added.
     9        * compositing/filters/invert-transparent.html: Added.
     10
    1112020-11-19  Chris Dumez  <cdumez@apple.com>
    212
  • trunk/Source/WebCore/ChangeLog

    r270039 r270040  
     12020-11-19  Fujii Hironori  <Hironori.Fujii@sony.com>
     2
     3        [TextureMapperGL] The invert filter wrongly inverts pre-multiplied alpha color
     4        https://bugs.webkit.org/show_bug.cgi?id=219144
     5
     6        Reviewed by Carlos Garcia Campos.
     7
     8        Test: compositing/filters/invert-transparent.html
     9
     10        * platform/graphics/texmap/TextureMapperShaderProgram.cpp: Take alpha value as an argument.
     11
    1122020-11-19  Lauro Moura  <lmoura@igalia.com>
    213
  • trunk/Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp

    r269837 r270040  
    338338        }
    339339
    340         float invert(float n) { return (1.0 - n) * u_filterAmount + n * (1.0 - u_filterAmount); }
     340        float invert(float n, float a) { return (a - n) * u_filterAmount + n * (1.0 - u_filterAmount); }
    341341        void applyInvertFilter(inout vec4 color)
    342342        {
    343             color = vec4(invert(color.r), invert(color.g), invert(color.b), color.a);
     343            color = vec4(invert(color.r, color.a), invert(color.g, color.a), invert(color.b, color.a), color.a);
    344344        }
    345345
Note: See TracChangeset for help on using the changeset viewer.