LCOV - code coverage report
Current view: directory - gfx/skia/src/core - SkScalar.cpp (source / functions) Found Hit Coverage
Test: app.info Lines: 17 0 0.0 %
Date: 2012-06-02 Functions: 1 0 0.0 %

       1                 : 
       2                 : /*
       3                 :  * Copyright 2010 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                 : #include "SkMath.h"
      11                 : #include "SkScalar.h"
      12                 : 
      13               0 : SkScalar SkScalarInterpFunc(SkScalar searchKey, const SkScalar keys[],
      14                 :                             const SkScalar values[], int length) {
      15               0 :     SkASSERT(length > 0);
      16               0 :     SkASSERT(keys != NULL);
      17               0 :     SkASSERT(values != NULL);
      18                 : #ifdef SK_DEBUG
      19               0 :     for (int i = 1; i < length; i++)
      20               0 :         SkASSERT(keys[i] >= keys[i-1]);
      21                 : #endif
      22               0 :     int right = 0;
      23               0 :     while (right < length && searchKey > keys[right])
      24               0 :         right++;
      25                 :     // Could use sentinel values to eliminate conditionals, but since the
      26                 :     // tables are taken as input, a simpler format is better.
      27               0 :     if (length == right)
      28               0 :         return values[length-1];
      29               0 :     if (0 == right)
      30               0 :         return values[0];
      31                 :     // Otherwise, interpolate between right - 1 and right.
      32               0 :     SkScalar rightKey = keys[right];
      33               0 :     SkScalar leftKey = keys[right-1];
      34               0 :     SkScalar fract = SkScalarDiv(searchKey-leftKey,rightKey-leftKey);
      35               0 :     return SkScalarInterp(values[right-1], values[right], fract);
      36                 : }

Generated by: LCOV version 1.7