am 16627347: Merge "Enable mipmapping, without a deadlock this time Bug #7353771" into jb-mr1-dev

* commit '16627347ef5c22914ccb69ff7b7035c9c9d7ab07':
  Enable mipmapping, without a deadlock this time Bug #7353771
This commit is contained in:
Romain Guy
2012-10-17 12:36:37 -07:00
committed by Android Git Automerger
2 changed files with 6 additions and 5 deletions

View File

@@ -74,8 +74,6 @@ void TextureCache::init() {
INIT_LOGD(" Maximum texture dimension is %d pixels", mMaxTextureSize);
mDebugEnabled = readDebugLevel() & kDebugCaches;
mHasNPot = false; //Caches::getInstance().extensions.hasNPot();
}
///////////////////////////////////////////////////////////////////////////////
@@ -219,11 +217,15 @@ void TextureCache::generateTexture(SkBitmap* bitmap, Texture* texture, bool rege
return;
}
// We could also enable mipmapping if both bitmap dimensions are powers
// of 2 but we'd have to deal with size changes. Let's keep this simple
const bool canMipMap = Caches::getInstance().extensions.hasNPot();
// If the texture had mipmap enabled but not anymore,
// force a glTexImage2D to discard the mipmap levels
const bool resize = !regenerate || bitmap->width() != int(texture->width) ||
bitmap->height() != int(texture->height) ||
(regenerate && mHasNPot && texture->mipMap && !bitmap->hasHardwareMipMap());
(regenerate && canMipMap && texture->mipMap && !bitmap->hasHardwareMipMap());
if (!regenerate) {
glGenTextures(1, &texture->id);
@@ -267,7 +269,7 @@ void TextureCache::generateTexture(SkBitmap* bitmap, Texture* texture, bool rege
break;
}
if (mHasNPot) {
if (canMipMap) {
texture->mipMap = bitmap->hasHardwareMipMap();
if (texture->mipMap) {
glGenerateMipmap(GL_TEXTURE_2D);

View File

@@ -138,7 +138,6 @@ private:
float mFlushRate;
bool mHasNPot;
bool mDebugEnabled;
Vector<SkBitmap*> mGarbage;