resolve merge conflicts of 24e38ab to stage-aosp-master

Change-Id: I02db3eb317ccb182b563ec9350a116bd5de063b6
This commit is contained in:
John Reck
2016-08-23 15:10:47 -07:00
3 changed files with 14 additions and 2 deletions

View File

@@ -182,7 +182,8 @@ static void drawPath(const SkPath *path, const SkPaint* paint, SkBitmap& bitmap,
PathCache::PathCache()
: mCache(LruCache<PathDescription, PathTexture*>::kUnlimitedCapacity)
, mSize(0)
, mMaxSize(Properties::pathCacheSize) {
, mMaxSize(Properties::pathCacheSize)
, mTexNum(0) {
mCache.setOnEntryRemovedListener(this);
GLint maxTextureSize;
@@ -238,6 +239,7 @@ void PathCache::removeTexture(PathTexture* texture) {
"the cache in an inconsistent state", size);
}
mSize -= size;
mTexNum--;
}
PATH_LOGD("PathCache::delete name, size, mSize = %d, %d, %d",
@@ -262,7 +264,7 @@ void PathCache::purgeCache(uint32_t width, uint32_t height) {
}
void PathCache::trim() {
while (mSize > mMaxSize) {
while (mSize > mMaxSize || mTexNum > DEFAULT_PATH_TEXTURE_CAP) {
mCache.removeOldest();
}
}
@@ -316,6 +318,7 @@ void PathCache::generateTexture(SkBitmap& bitmap, Texture* texture) {
ATRACE_NAME("Upload Path Texture");
texture->upload(bitmap);
texture->setFilter(GL_LINEAR);
mTexNum++;
}
///////////////////////////////////////////////////////////////////////////////

View File

@@ -304,6 +304,12 @@ private:
bool mDebugEnabled;
/**
* Driver allocated 4k/8k/16k memory for small path cache,
* limit the number of PathTexture in case occupy too much memory in hardware.
*/
uint32_t mTexNum;
sp<PathProcessor> mProcessor;
std::vector<uint32_t> mGarbage;

View File

@@ -219,6 +219,9 @@ enum DebugLevel {
#define DEFAULT_TEXT_GAMMA 1.4f
// cap to 256 to limite paths in the path cache
#define DEFAULT_PATH_TEXTURE_CAP 256
///////////////////////////////////////////////////////////////////////////////
// Misc
///////////////////////////////////////////////////////////////////////////////