// Copyright 2013 The Flutter Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "flutter/flow/layers/cacheable_layer.h" namespace flutter { AutoCache::AutoCache(RasterCacheItem* raster_cache_item, PrerollContext* context, const SkMatrix& matrix) : raster_cache_item_(raster_cache_item), context_(context), matrix_(matrix) { #if !SLIMPELLER if (IsCacheEnabled()) { raster_cache_item->PrerollSetup(context, matrix); } #endif // !SLIMPELLER } bool AutoCache::IsCacheEnabled() { #if SLIMPELLER return false; #else // SLIMPELLER return raster_cache_item_ && context_ && context_->raster_cache; #endif // SLIMPELLER } AutoCache::~AutoCache() { #if !SLIMPELLER if (IsCacheEnabled()) { raster_cache_item_->PrerollFinalize(context_, matrix_); } #endif // !SLIMPELLER } CacheableContainerLayer::CacheableContainerLayer(int layer_cached_threshold, bool can_cache_children) { #if !SLIMPELLER layer_raster_cache_item_ = LayerRasterCacheItem::Make( this, layer_cached_threshold, can_cache_children); #endif // !SLIMPELLER } } // namespace flutter