Chromium Code Reviews| Index: Source/platform/image-decoders/ImageFrame.h |
| diff --git a/Source/platform/image-decoders/ImageFrame.h b/Source/platform/image-decoders/ImageFrame.h |
| index bb665a9140c1f5e3d180b55379e4106f36f9acbb..0246efe21c91994b4f602870a0a4cad4cb531e08 100644 |
| --- a/Source/platform/image-decoders/ImageFrame.h |
| +++ b/Source/platform/image-decoders/ImageFrame.h |
| @@ -162,11 +162,20 @@ public: |
| setRGBA(getAddr(x, y), r, g, b, a); |
| } |
| + inline void setRGBA(PixelData* dest, unsigned r, unsigned g, unsigned b, unsigned a) |
| + { |
| + if (m_premultiplyAlpha) |
|
Peter Kasting
2014/05/12 19:36:11
We could simplify this to just:
setRGBA<m_pre
Noel Gordon
2014/05/13 01:39:19
Doesn't compile on any C++ compiler I know. VS2010
Peter Kasting
2014/05/13 01:54:56
Huh, that's odd. I could swear I've done precisel
|
| + setRGBA<true>(dest, r, g, b, a); |
| + else |
| + *dest = SkPackARGB32NoCheck(a, r, g, b); |
| + } |
| + |
| static const unsigned div255 = static_cast<unsigned>(1.0 / 255 * (1 << 24)) + 1; |
| + template <bool Premultiply> |
| inline void setRGBA(PixelData* dest, unsigned r, unsigned g, unsigned b, unsigned a) |
|
Peter Kasting
2014/05/12 19:36:11
This can be static, can't it?
Noel Gordon
2014/05/13 01:39:19
Could be, but you'd then add function calling over
Peter Kasting
2014/05/13 01:54:56
Why? Can't something be both static and inline?
|
| { |
| - if (m_premultiplyAlpha && a < 255) { |
| + if (Premultiply && a < 255) { |
| if (!a) { |
| *dest = 0; |
| return; |