TextureCache.h revision ce0537b80087a6225273040a987414b1dd081aa0
1ce0537b80087a6225273040a987414b1dd081aa0Romain Guy/* 2ce0537b80087a6225273040a987414b1dd081aa0Romain Guy * Copyright (C) 2010 The Android Open Source Project 3ce0537b80087a6225273040a987414b1dd081aa0Romain Guy * 4ce0537b80087a6225273040a987414b1dd081aa0Romain Guy * Licensed under the Apache License, Version 2.0 (the "License"); 5ce0537b80087a6225273040a987414b1dd081aa0Romain Guy * you may not use this file except in compliance with the License. 6ce0537b80087a6225273040a987414b1dd081aa0Romain Guy * You may obtain a copy of the License at 7ce0537b80087a6225273040a987414b1dd081aa0Romain Guy * 8ce0537b80087a6225273040a987414b1dd081aa0Romain Guy * http://www.apache.org/licenses/LICENSE-2.0 9ce0537b80087a6225273040a987414b1dd081aa0Romain Guy * 10ce0537b80087a6225273040a987414b1dd081aa0Romain Guy * Unless required by applicable law or agreed to in writing, software 11ce0537b80087a6225273040a987414b1dd081aa0Romain Guy * distributed under the License is distributed on an "AS IS" BASIS, 12ce0537b80087a6225273040a987414b1dd081aa0Romain Guy * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13ce0537b80087a6225273040a987414b1dd081aa0Romain Guy * See the License for the specific language governing permissions and 14ce0537b80087a6225273040a987414b1dd081aa0Romain Guy * limitations under the License. 15ce0537b80087a6225273040a987414b1dd081aa0Romain Guy */ 16ce0537b80087a6225273040a987414b1dd081aa0Romain Guy 17ce0537b80087a6225273040a987414b1dd081aa0Romain Guy#ifndef ANDROID_UI_TEXTURE_CACHE_H 18ce0537b80087a6225273040a987414b1dd081aa0Romain Guy#define ANDROID_UI_TEXTURE_CACHE_H 19ce0537b80087a6225273040a987414b1dd081aa0Romain Guy 20ce0537b80087a6225273040a987414b1dd081aa0Romain Guy#include <SkBitmap.h> 21ce0537b80087a6225273040a987414b1dd081aa0Romain Guy 22ce0537b80087a6225273040a987414b1dd081aa0Romain Guy#include "Texture.h" 23ce0537b80087a6225273040a987414b1dd081aa0Romain Guy#include "GenerationCache.h" 24ce0537b80087a6225273040a987414b1dd081aa0Romain Guy 25ce0537b80087a6225273040a987414b1dd081aa0Romain Guynamespace android { 26ce0537b80087a6225273040a987414b1dd081aa0Romain Guynamespace uirenderer { 27ce0537b80087a6225273040a987414b1dd081aa0Romain Guy 28ce0537b80087a6225273040a987414b1dd081aa0Romain Guyclass TextureCache: public OnEntryRemoved<SkBitmap*, Texture*> { 29ce0537b80087a6225273040a987414b1dd081aa0Romain Guypublic: 30ce0537b80087a6225273040a987414b1dd081aa0Romain Guy TextureCache(unsigned int maxEntries); 31ce0537b80087a6225273040a987414b1dd081aa0Romain Guy ~TextureCache(); 32ce0537b80087a6225273040a987414b1dd081aa0Romain Guy 33ce0537b80087a6225273040a987414b1dd081aa0Romain Guy void operator()(SkBitmap* key, Texture* value); 34ce0537b80087a6225273040a987414b1dd081aa0Romain Guy 35ce0537b80087a6225273040a987414b1dd081aa0Romain Guy Texture* get(SkBitmap* bitmap); 36ce0537b80087a6225273040a987414b1dd081aa0Romain Guy Texture* remove(SkBitmap* bitmap); 37ce0537b80087a6225273040a987414b1dd081aa0Romain Guy void clear(); 38ce0537b80087a6225273040a987414b1dd081aa0Romain Guy 39ce0537b80087a6225273040a987414b1dd081aa0Romain Guyprivate: 40ce0537b80087a6225273040a987414b1dd081aa0Romain Guy Texture* generateTexture(SkBitmap* bitmap); 41ce0537b80087a6225273040a987414b1dd081aa0Romain Guy 42ce0537b80087a6225273040a987414b1dd081aa0Romain Guy GenerationCache<SkBitmap, Texture> mCache; 43ce0537b80087a6225273040a987414b1dd081aa0Romain Guy}; // class TextureCache 44ce0537b80087a6225273040a987414b1dd081aa0Romain Guy 45ce0537b80087a6225273040a987414b1dd081aa0Romain Guy}; // namespace uirenderer 46ce0537b80087a6225273040a987414b1dd081aa0Romain Guy}; // namespace android 47ce0537b80087a6225273040a987414b1dd081aa0Romain Guy 48ce0537b80087a6225273040a987414b1dd081aa0Romain Guy#endif // ANDROID_UI_TEXTURE_CACHE_H 49