am d0f7f418
: Merge "Freeing frame map"
* commit 'd0f7f41828493b0679e908f7bb3ed3b8e838c463': Freeing frame map
This commit is contained in:
@ -156,12 +156,12 @@ status_t BootAnimation::initTexture(Texture* texture, AssetManager& assets,
|
|||||||
return NO_ERROR;
|
return NO_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
status_t BootAnimation::initTexture(void* buffer, size_t len)
|
status_t BootAnimation::initTexture(const Animation::Frame& frame)
|
||||||
{
|
{
|
||||||
//StopWatch watch("blah");
|
//StopWatch watch("blah");
|
||||||
|
|
||||||
SkBitmap bitmap;
|
SkBitmap bitmap;
|
||||||
SkMemoryStream stream(buffer, len);
|
SkMemoryStream stream(frame.map->getDataPtr(), frame.map->getDataLength());
|
||||||
SkImageDecoder* codec = SkImageDecoder::Factory(&stream);
|
SkImageDecoder* codec = SkImageDecoder::Factory(&stream);
|
||||||
if (codec) {
|
if (codec) {
|
||||||
codec->setDitherImage(false);
|
codec->setDitherImage(false);
|
||||||
@ -171,6 +171,11 @@ status_t BootAnimation::initTexture(void* buffer, size_t len)
|
|||||||
delete codec;
|
delete codec;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FileMap memory is never released until application exit.
|
||||||
|
// Release it now as the texture is already loaded and the memory used for
|
||||||
|
// the packed resource can be released.
|
||||||
|
frame.map->release();
|
||||||
|
|
||||||
// ensure we can call getPixels(). No need to call unlock, since the
|
// ensure we can call getPixels(). No need to call unlock, since the
|
||||||
// bitmap will go out of scope when we return from this method.
|
// bitmap will go out of scope when we return from this method.
|
||||||
bitmap.lockPixels();
|
bitmap.lockPixels();
|
||||||
@ -406,6 +411,7 @@ bool BootAnimation::movie()
|
|||||||
|
|
||||||
String8 desString((char const*)descMap->getDataPtr(),
|
String8 desString((char const*)descMap->getDataPtr(),
|
||||||
descMap->getDataLength());
|
descMap->getDataLength());
|
||||||
|
descMap->release();
|
||||||
char const* s = desString.string();
|
char const* s = desString.string();
|
||||||
|
|
||||||
Animation animation;
|
Animation animation;
|
||||||
@ -530,9 +536,7 @@ bool BootAnimation::movie()
|
|||||||
glTexParameterx(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
|
glTexParameterx(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
|
||||||
glTexParameterx(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
|
glTexParameterx(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
|
||||||
}
|
}
|
||||||
initTexture(
|
initTexture(frame);
|
||||||
frame.map->getDataPtr(),
|
|
||||||
frame.map->getDataLength());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!clearReg.isEmpty()) {
|
if (!clearReg.isEmpty()) {
|
||||||
|
@ -79,7 +79,7 @@ private:
|
|||||||
};
|
};
|
||||||
|
|
||||||
status_t initTexture(Texture* texture, AssetManager& asset, const char* name);
|
status_t initTexture(Texture* texture, AssetManager& asset, const char* name);
|
||||||
status_t initTexture(void* buffer, size_t len);
|
status_t initTexture(const Animation::Frame& frame);
|
||||||
bool android();
|
bool android();
|
||||||
bool movie();
|
bool movie();
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user