Skia
2DGraphicsLibrary
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
SkUnPreMultiply.h
1 
2 /*
3  * Copyright 2008 The Android Open Source Project
4  *
5  * Use of this source code is governed by a BSD-style license that can be
6  * found in the LICENSE file.
7  */
8 
9 
10 
11 
12 
13 #ifndef SkUnPreMultiply_DEFINED
14 #define SkUnPreMultiply_DEFINED
15 
16 #include "SkColor.h"
17 
18 class SK_API SkUnPreMultiply {
19 public:
20  typedef uint32_t Scale;
21 
22  // index this table with alpha [0..255]
23  static const Scale* GetScaleTable() {
24  return gTable;
25  }
26 
27  static Scale GetScale(U8CPU alpha) {
28  SkASSERT(alpha <= 255);
29  return gTable[alpha];
30  }
31 
45  static U8CPU ApplyScale(Scale scale, U8CPU component) {
46  SkASSERT(component <= 255);
47  return (scale * component + (1 << 23)) >> 24;
48  }
49 
50  static SkColor PMColorToColor(SkPMColor c);
51 
52  static uint32_t UnPreMultiplyPreservingByteOrder(SkPMColor c);
53 
54 private:
55  static const uint32_t gTable[256];
56 };
57 
58 #endif
static U8CPU ApplyScale(Scale scale, U8CPU component)
Usage:
Definition: SkUnPreMultiply.h:45
Definition: SkUnPreMultiply.h:18
uint32_t SkPMColor
32 bit ARGB color value, premultiplied.
Definition: SkColor.h:161
uint32_t SkColor
32 bit ARGB color value, not premultiplied.
Definition: SkColor.h:28
unsigned U8CPU
Fast type for unsigned 8 bits.
Definition: SkTypes.h:191
Types and macros for colors.