| Index: src/core/SkColorSpaceXform.h
|
| diff --git a/src/core/SkColorSpaceXform.h b/src/core/SkColorSpaceXform.h
|
| index a9d26a77f867d4a48933d31ec7239d84b154b246..05385649be0e3ae50949c17d1db5090f7de2f407 100644
|
| --- a/src/core/SkColorSpaceXform.h
|
| +++ b/src/core/SkColorSpaceXform.h
|
| @@ -10,6 +10,7 @@
|
|
|
| #include "SkColorSpace.h"
|
| #include "SkColorSpace_Base.h"
|
| +#include "SkImageInfo.h"
|
|
|
| class SkColorSpaceXform : SkNoncopyable {
|
| public:
|
| @@ -30,12 +31,17 @@ public:
|
|
|
| /**
|
| * Apply the color conversion to a src buffer, storing the output in the dst buffer.
|
| - * The src is stored as RGBA (8888) and is treated as opaque.
|
| - * TODO (msarett): Support non-opaque srcs.
|
| + * The src is stored as RGBA (8888). If Premul is requested, the output will be
|
| + * premultiplied by alpha.
|
| */
|
| virtual void applyToRGBA(RGBA32* dst, const RGBA32* src, int len) const = 0;
|
| virtual void applyToBGRA(BGRA32* dst, const RGBA32* src, int len) const = 0;
|
| virtual void applyToF16(RGBAF16* dst, const RGBA32* src, int len) const = 0;
|
| + virtual void applyToRGBAPremul(RGBA32* dst, const RGBA32* src, int len) const = 0;
|
| + virtual void applyToBGRAPremul(BGRA32* dst, const RGBA32* src, int len) const = 0;
|
| + virtual void applyToF16Premul(RGBAF16* dst, const RGBA32* src, int len) const = 0;
|
| + virtual void apply(void* dst, const RGBA32* src, int len, SkColorType dstColorType,
|
| + bool premul) const = 0;
|
|
|
| virtual ~SkColorSpaceXform() {}
|
| };
|
| @@ -47,6 +53,11 @@ public:
|
| void applyToRGBA(RGBA32* dst, const RGBA32* src, int len) const override;
|
| void applyToBGRA(BGRA32* dst, const RGBA32* src, int len) const override;
|
| void applyToF16(RGBAF16* dst, const RGBA32* src, int len) const override;
|
| + void applyToRGBAPremul(RGBA32* dst, const RGBA32* src, int len) const override;
|
| + void applyToBGRAPremul(BGRA32* dst, const RGBA32* src, int len) const override;
|
| + void applyToF16Premul(RGBAF16* dst, const RGBA32* src, int len) const override;
|
| + void apply(void* dst, const RGBA32* src, int len, SkColorType dstColorType, bool premul)
|
| + const override;
|
|
|
| static constexpr int kDstGammaTableSize = 1024;
|
|
|
|
|