blob: f2513cb09d580a0804685067161011f223a66930 [file] [edit]
/*
* Copyright 2026 Google LLC
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#include "src/core/SkSharedContext.h"
#include "include/core/SkContextOptions.h"
#include "src/core/SkStrikeCache.h"
#include "src/core/SkSynchronizedResourceCache.h"
#include "src/core/SkTypefaceCache.h"
#if defined(SK_USE_DISCARDABLE_SCALEDIMAGECACHE)
#include "include/private/chromium/SkDiscardableMemory.h"
#endif
SkSharedContext::SkSharedContext(const SkContextOptions& options) {
#if defined(SK_USE_DISCARDABLE_SCALEDIMAGECACHE)
fResourceCache = std::make_unique<SkSynchronizedResourceCache>(SkDiscardableMemory::Create);
#else
fResourceCache =
std::make_unique<SkSynchronizedResourceCache>(options.fResourceCacheTotalByteLimit);
#endif
fFontCache = std::make_unique<SkStrikeCache>();
fTypefaceCache = std::make_unique<SkTypefaceCache>();
fTypefaceCacheCountLimit = options.fTypefaceCacheCountLimit;
fResourceCache->setSingleAllocationByteLimit(options.fResourceCacheSingleAllocationByteLimit);
fFontCache->setCacheCountLimit(options.fFontCacheCountLimit);
fFontCache->setCacheSizeLimit(options.fFontCacheLimit);
}
SkSharedContext::~SkSharedContext() = default;