gfx/skia/trunk/include/core/SkGraphics.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 SkGraphics_DEFINED
    11 #define SkGraphics_DEFINED
    13 #include "SkTypes.h"
    15 class SK_API SkGraphics {
    16 public:
    17     /**
    18      *  Call this at process initialization time if your environment does not
    19      *  permit static global initializers that execute code. Note that
    20      *  Init() is not thread-safe.
    21      */
    22     static void Init();
    24     /**
    25      *  Call this to release any memory held privately, such as the font cache.
    26      */
    27     static void Term();
    29     /**
    30      *  Return the version numbers for the library. If the parameter is not
    31      *  null, it is set to the version number.
    32      */
    33     static void GetVersion(int32_t* major, int32_t* minor, int32_t* patch);
    35     /**
    36      *  Return the max number of bytes that should be used by the font cache.
    37      *  If the cache needs to allocate more, it will purge previous entries.
    38      *  This max can be changed by calling SetFontCacheLimit().
    39      */
    40     static size_t GetFontCacheLimit();
    42     /**
    43      *  Specify the max number of bytes that should be used by the font cache.
    44      *  If the cache needs to allocate more, it will purge previous entries.
    45      *
    46      *  This function returns the previous setting, as if GetFontCacheLimit()
    47      *  had be called before the new limit was set.
    48      */
    49     static size_t SetFontCacheLimit(size_t bytes);
    51     /**
    52      *  Return the number of bytes currently used by the font cache.
    53      */
    54     static size_t GetFontCacheUsed();
    56     /**
    57      *  Return the number of entries in the font cache.
    58      *  A cache "entry" is associated with each typeface + pointSize + matrix.
    59      */
    60     static int GetFontCacheCountUsed();
    62     /**
    63      *  Return the current limit to the number of entries in the font cache.
    64      *  A cache "entry" is associated with each typeface + pointSize + matrix.
    65      */
    66     static int GetFontCacheCountLimit();
    68     /**
    69      *  Set the limit to the number of entries in the font cache, and return
    70      *  the previous value. If this new value is lower than the previous,
    71      *  it will automatically try to purge entries to meet the new limit.
    72      */
    73     static int SetFontCacheCountLimit(int count);
    75     /**
    76      *  For debugging purposes, this will attempt to purge the font cache. It
    77      *  does not change the limit, but will cause subsequent font measures and
    78      *  draws to be recreated, since they will no longer be in the cache.
    79      */
    80     static void PurgeFontCache();
    82     static size_t GetImageCacheBytesUsed();
    83     static size_t GetImageCacheByteLimit();
    84     static size_t SetImageCacheByteLimit(size_t newLimit);
    86     /**
    87      *  Applications with command line options may pass optional state, such
    88      *  as cache sizes, here, for instance:
    89      *  font-cache-limit=12345678
    90      *
    91      *  The flags format is name=value[;name=value...] with no spaces.
    92      *  This format is subject to change.
    93      */
    94     static void SetFlags(const char* flags);
    96     /**
    97      *  Return the max number of bytes that should be used by the thread-local
    98      *  font cache.
    99      *  If the cache needs to allocate more, it will purge previous entries.
   100      *  This max can be changed by calling SetFontCacheLimit().
   101      *
   102      *  If this thread has never called SetTLSFontCacheLimit, or has called it
   103      *  with 0, then this thread is using the shared font cache. In that case,
   104      *  this function will always return 0, and the caller may want to call
   105      *  GetFontCacheLimit.
   106      */
   107     static size_t GetTLSFontCacheLimit();
   109     /**
   110      *  Specify the max number of bytes that should be used by the thread-local
   111      *  font cache. If this value is 0, then this thread will use the shared
   112      *  global font cache.
   113      */
   114     static void SetTLSFontCacheLimit(size_t bytes);
   116 private:
   117     /** This is automatically called by SkGraphics::Init(), and must be
   118         implemented by the host OS. This allows the host OS to register a callback
   119         with the C++ runtime to call SkGraphics::FreeCaches()
   120     */
   121     static void InstallNewHandler();
   122 };
   124 class SkAutoGraphics {
   125 public:
   126     SkAutoGraphics() {
   127         SkGraphics::Init();
   128     }
   129     ~SkAutoGraphics() {
   130         SkGraphics::Term();
   131     }
   132 };
   134 #endif

mercurial