PatchCache.h revision 2728f961614a385df1f056fc24803a9f65c90fab
1f7f93556c8fcc640ab5adef79d021a80a72a645aRomain Guy/* 2f7f93556c8fcc640ab5adef79d021a80a72a645aRomain Guy * Copyright (C) 2010 The Android Open Source Project 3f7f93556c8fcc640ab5adef79d021a80a72a645aRomain Guy * 4f7f93556c8fcc640ab5adef79d021a80a72a645aRomain Guy * Licensed under the Apache License, Version 2.0 (the "License"); 5f7f93556c8fcc640ab5adef79d021a80a72a645aRomain Guy * you may not use this file except in compliance with the License. 6f7f93556c8fcc640ab5adef79d021a80a72a645aRomain Guy * You may obtain a copy of the License at 7f7f93556c8fcc640ab5adef79d021a80a72a645aRomain Guy * 8f7f93556c8fcc640ab5adef79d021a80a72a645aRomain Guy * http://www.apache.org/licenses/LICENSE-2.0 9f7f93556c8fcc640ab5adef79d021a80a72a645aRomain Guy * 10f7f93556c8fcc640ab5adef79d021a80a72a645aRomain Guy * Unless required by applicable law or agreed to in writing, software 11f7f93556c8fcc640ab5adef79d021a80a72a645aRomain Guy * distributed under the License is distributed on an "AS IS" BASIS, 12f7f93556c8fcc640ab5adef79d021a80a72a645aRomain Guy * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13f7f93556c8fcc640ab5adef79d021a80a72a645aRomain Guy * See the License for the specific language governing permissions and 14f7f93556c8fcc640ab5adef79d021a80a72a645aRomain Guy * limitations under the License. 15f7f93556c8fcc640ab5adef79d021a80a72a645aRomain Guy */ 16f7f93556c8fcc640ab5adef79d021a80a72a645aRomain Guy 17f7f93556c8fcc640ab5adef79d021a80a72a645aRomain Guy#ifndef ANDROID_UI_PATCH_CACHE_H 18f7f93556c8fcc640ab5adef79d021a80a72a645aRomain Guy#define ANDROID_UI_PATCH_CACHE_H 19f7f93556c8fcc640ab5adef79d021a80a72a645aRomain Guy 202728f961614a385df1f056fc24803a9f65c90fabRomain Guy#include <utils/KeyedVector.h> 212728f961614a385df1f056fc24803a9f65c90fabRomain Guy 22f7f93556c8fcc640ab5adef79d021a80a72a645aRomain Guy#include "Patch.h" 23f7f93556c8fcc640ab5adef79d021a80a72a645aRomain Guy 24f7f93556c8fcc640ab5adef79d021a80a72a645aRomain Guynamespace android { 25f7f93556c8fcc640ab5adef79d021a80a72a645aRomain Guynamespace uirenderer { 26f7f93556c8fcc640ab5adef79d021a80a72a645aRomain Guy 27f7f93556c8fcc640ab5adef79d021a80a72a645aRomain Guy/////////////////////////////////////////////////////////////////////////////// 28f7f93556c8fcc640ab5adef79d021a80a72a645aRomain Guy// Defines 29f7f93556c8fcc640ab5adef79d021a80a72a645aRomain Guy/////////////////////////////////////////////////////////////////////////////// 30f7f93556c8fcc640ab5adef79d021a80a72a645aRomain Guy 31f7f93556c8fcc640ab5adef79d021a80a72a645aRomain Guy// Debug 32f7f93556c8fcc640ab5adef79d021a80a72a645aRomain Guy#define DEBUG_PATCHES 0 33f7f93556c8fcc640ab5adef79d021a80a72a645aRomain Guy 34f7f93556c8fcc640ab5adef79d021a80a72a645aRomain Guy// Debug 35f7f93556c8fcc640ab5adef79d021a80a72a645aRomain Guy#if DEBUG_PATCHES 36f7f93556c8fcc640ab5adef79d021a80a72a645aRomain Guy #define PATCH_LOGD(...) LOGD(__VA_ARGS__) 37f7f93556c8fcc640ab5adef79d021a80a72a645aRomain Guy#else 38f7f93556c8fcc640ab5adef79d021a80a72a645aRomain Guy #define PATCH_LOGD(...) 39f7f93556c8fcc640ab5adef79d021a80a72a645aRomain Guy#endif 40f7f93556c8fcc640ab5adef79d021a80a72a645aRomain Guy 41f7f93556c8fcc640ab5adef79d021a80a72a645aRomain Guy/////////////////////////////////////////////////////////////////////////////// 42f7f93556c8fcc640ab5adef79d021a80a72a645aRomain Guy// Cache 43f7f93556c8fcc640ab5adef79d021a80a72a645aRomain Guy/////////////////////////////////////////////////////////////////////////////// 44f7f93556c8fcc640ab5adef79d021a80a72a645aRomain Guy 452728f961614a385df1f056fc24803a9f65c90fabRomain Guyclass PatchCache { 46f7f93556c8fcc640ab5adef79d021a80a72a645aRomain Guypublic: 47fb8b763f762ae21923c58d64caa729b012f40e05Romain Guy PatchCache(); 48f7f93556c8fcc640ab5adef79d021a80a72a645aRomain Guy PatchCache(uint32_t maxCapacity); 49f7f93556c8fcc640ab5adef79d021a80a72a645aRomain Guy ~PatchCache(); 50f7f93556c8fcc640ab5adef79d021a80a72a645aRomain Guy 512728f961614a385df1f056fc24803a9f65c90fabRomain Guy Patch* get(const float bitmapWidth, const float bitmapHeight, 522728f961614a385df1f056fc24803a9f65c90fabRomain Guy const float pixelWidth, const float pixelHeight, 532728f961614a385df1f056fc24803a9f65c90fabRomain Guy const int32_t* xDivs, const int32_t* yDivs, 542728f961614a385df1f056fc24803a9f65c90fabRomain Guy const uint32_t width, const uint32_t height); 55f7f93556c8fcc640ab5adef79d021a80a72a645aRomain Guy void clear(); 56f7f93556c8fcc640ab5adef79d021a80a72a645aRomain Guy 57f7f93556c8fcc640ab5adef79d021a80a72a645aRomain Guyprivate: 582728f961614a385df1f056fc24803a9f65c90fabRomain Guy uint32_t mMaxEntries; 592728f961614a385df1f056fc24803a9f65c90fabRomain Guy KeyedVector<PatchDescription, Patch*> mCache; 60f7f93556c8fcc640ab5adef79d021a80a72a645aRomain Guy}; // class PatchCache 61f7f93556c8fcc640ab5adef79d021a80a72a645aRomain Guy 62f7f93556c8fcc640ab5adef79d021a80a72a645aRomain Guy}; // namespace uirenderer 63f7f93556c8fcc640ab5adef79d021a80a72a645aRomain Guy}; // namespace android 64f7f93556c8fcc640ab5adef79d021a80a72a645aRomain Guy 65f7f93556c8fcc640ab5adef79d021a80a72a645aRomain Guy#endif // ANDROID_UI_PATCH_CACHE_H 66