gfx/skia/trunk/src/animator/SkOperandInterpolator.h

Sat, 03 Jan 2015 20:18:00 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Sat, 03 Jan 2015 20:18:00 +0100
branch
TOR_BUG_3246
changeset 7
129ffea94266
permissions
-rw-r--r--

Conditionally enable double key logic according to:
private browsing mode or privacy.thirdparty.isolate preference and
implement in GetCookieStringCommon and FindCookie where it counts...
With some reservations of how to convince FindCookie users to test
condition and pass a nullptr when disabling double key logic.

     2 /*
     3  * Copyright 2006 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  */
    10 #ifndef SkOperandInterpolator_DEFINED
    11 #define SkOperandInterpolator_DEFINED
    13 #include "SkDisplayType.h"
    14 #include "SkInterpolator.h"
    15 #include "SkOperand.h"
    17 class SkOperandInterpolator : public SkInterpolatorBase {
    18 public:
    19     SkOperandInterpolator();
    20     SkOperandInterpolator(int elemCount, int frameCount, SkDisplayTypes type);
    21     SkOperand* getValues() { return fValues; }
    22     int getValuesCount() { return fFrameCount * fElemCount; }
    23     void    reset(int elemCount, int frameCount, SkDisplayTypes type);
    25     /** Add or replace a key frame, copying the values[] data into the interpolator.
    26         @param index    The index of this frame (frames must be ordered by time)
    27         @param time The millisecond time for this frame
    28         @param values   The array of values [elemCount] for this frame. The data is copied
    29                         into the interpolator.
    30         @param blend    A positive scalar specifying how to blend between this and the next key frame.
    31                         [0...1) is a cubic lag/log/lag blend (slow to change at the beginning and end)
    32                         1 is a linear blend (default)
    33                         (1...inf) is a cubic log/lag/log blend (fast to change at the beginning and end)
    34     */
    35     bool    setKeyFrame(int index, SkMSec time, const SkOperand values[], SkScalar blend = SK_Scalar1);
    36     Result timeToValues(SkMSec time, SkOperand values[]) const;
    37     SkDEBUGCODE(static void UnitTest();)
    38 private:
    39     SkDisplayTypes fType;
    40     SkOperand* fValues;     // pointer into fStorage
    41 #ifdef SK_DEBUG
    42     SkOperand(* fValuesArray)[10];
    43 #endif
    44     typedef SkInterpolatorBase INHERITED;
    45 };
    47 #endif // SkOperandInterpolator_DEFINED

mercurial