Lines Matching refs:bitmap

105 void TextureCache::operator()(SkBitmap*& bitmap, Texture*& texture) {
123 Texture* TextureCache::get(SkBitmap* bitmap) {
124 Texture* texture = mCache.get(bitmap);
127 if (bitmap->width() > mMaxTextureSize || bitmap->height() > mMaxTextureSize) {
129 bitmap->width(), bitmap->height(), mMaxTextureSize, mMaxTextureSize);
133 const uint32_t size = bitmap->rowBytes() * bitmap->height();
134 // Don't even try to cache a bitmap that's bigger than the cache
143 generateTexture(bitmap, texture, false);
148 bitmap, texture->id, size, mSize);
152 mCache.put(bitmap, texture);
156 } else if (bitmap->getGenerationID() != texture->generation) {
157 generateTexture(bitmap, texture, true);
163 Texture* TextureCache::getTransient(SkBitmap* bitmap) {
165 texture->bitmapSize = bitmap->rowBytes() * bitmap->height();
168 generateTexture(bitmap, texture, false);
173 void TextureCache::remove(SkBitmap* bitmap) {
174 mCache.remove(bitmap);
177 void TextureCache::removeDeferred(SkBitmap* bitmap) {
179 mGarbage.push(bitmap);
211 void TextureCache::generateTexture(SkBitmap* bitmap, Texture* texture, bool regenerate) {
212 SkAutoLockPixels alp(*bitmap);
214 if (!bitmap->readyToDraw()) {
215 ALOGE("Cannot generate texture from bitmap");
219 const bool resize = !regenerate || bitmap->width() != int(texture->width) ||
220 bitmap->height() != int(texture->height);
226 texture->generation = bitmap->getGenerationID();
227 texture->width = bitmap->width();
228 texture->height = bitmap->height();
232 glPixelStorei(GL_UNPACK_ALIGNMENT, bitmap->bytesPerPixel());
235 switch (bitmap->getConfig()) {
240 uploadToTexture(resize, GL_ALPHA, bitmap->rowBytesAsPixels(), texture->height,
241 GL_UNSIGNED_BYTE, bitmap->getPixels());
245 uploadToTexture(resize, GL_RGB, bitmap->rowBytesAsPixels(), texture->height,
246 GL_UNSIGNED_SHORT_5_6_5, bitmap->getPixels());
250 uploadToTexture(resize, GL_RGBA, bitmap->rowBytesAsPixels(), texture->height,
251 GL_UNSIGNED_BYTE, bitmap->getPixels());
254 texture->blend = !bitmap->isOpaque();
258 uploadLoFiTexture(resize, bitmap, texture->width, texture->height);
259 texture->blend = !bitmap->isOpaque();
262 ALOGW("Unsupported bitmap config: %d", bitmap->getConfig());
272 void TextureCache::uploadLoFiTexture(bool resize, SkBitmap* bitmap,
278 rgbaBitmap.setIsOpaque(bitmap->isOpaque());
281 canvas.drawBitmap(*bitmap, 0.0f, 0.0f, NULL);