SkImageRefPool.h revision 1cab2921ab279367f8206cdadc9259d12e603548
11cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 21cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger/* 31cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Copyright 2011 Google Inc. 41cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * 51cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Use of this source code is governed by a BSD-style license that can be 61cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * found in the LICENSE file. 71cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger */ 80910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#ifndef SkImageRefPool_DEFINED 90910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#define SkImageRefPool_DEFINED 100910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 110910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkTypes.h" 120910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 130910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectclass SkImageRef; 140910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectclass SkImageRef_GlobalPool; 150910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 160910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectclass SkImageRefPool { 170910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectpublic: 180910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkImageRefPool(); 190910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project ~SkImageRefPool(); 200910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 210910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project size_t getRAMBudget() const { return fRAMBudget; } 220910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project void setRAMBudget(size_t); 230910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 240910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project size_t getRAMUsed() const { return fRAMUsed; } 250910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project void setRAMUsed(size_t limit); 260910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 270910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project void addToHead(SkImageRef*); 280910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project void addToTail(SkImageRef*); 290910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project void detach(SkImageRef*); 300910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 310910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project void dump() const; 320910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 330910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectprivate: 340910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project size_t fRAMBudget; 350910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project size_t fRAMUsed; 360910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 370910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project int fCount; 380910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkImageRef* fHead, *fTail; 390910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 400910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project int computeCount() const; 410910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 420910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project friend class SkImageRef_GlobalPool; 430910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 440910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project void justAddedPixels(SkImageRef*); 450910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project void canLosePixels(SkImageRef*); 460910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project void purgeIfNeeded(); 470910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project}; 480910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 490910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif 500910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 51