LCOV - code coverage report
Current view: directory - gfx/skia/include/core - SkUnPreMultiply.h (source / functions) Found Hit Coverage
Test: app.info Lines: 6 0 0.0 %
Date: 2012-06-02 Functions: 2 0 0.0 %

       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               0 :     static Scale GetScale(U8CPU alpha) {
      28               0 :         SkASSERT(alpha <= 255);
      29               0 :         return gTable[alpha];
      30                 :     }
      31                 :     
      32                 :     /** Usage:
      33                 :      
      34                 :         const Scale* table = SkUnPreMultiply::GetScaleTable();
      35                 :      
      36                 :         for (...) {
      37                 :             unsigned a = ...
      38                 :             SkUnPreMultiply::Scale scale = table[a];
      39                 :      
      40                 :             red = SkUnPreMultiply::ApplyScale(scale, red);
      41                 :             ...
      42                 :             // now red is unpremultiplied
      43                 :         }
      44                 :     */
      45               0 :     static U8CPU ApplyScale(Scale scale, U8CPU component) {
      46               0 :         SkASSERT(component <= 255);
      47               0 :         return (scale * component + (1 << 23)) >> 24;
      48                 :     }
      49                 :     
      50                 :     static SkColor PMColorToColor(SkPMColor c);
      51                 :     
      52                 : private:
      53                 :     static const uint32_t gTable[256];
      54                 : };
      55                 : 
      56                 : #endif

Generated by: LCOV version 1.7