Index: cc/output/gl_renderer.cc |
diff --git a/cc/output/gl_renderer.cc b/cc/output/gl_renderer.cc |
index 3d6607c18fa19c8573752f1b58f0317c3884ce01..2ebc73201e41e3401cfb3067f95554063ba4de14 100644 |
--- a/cc/output/gl_renderer.cc |
+++ b/cc/output/gl_renderer.cc |
@@ -662,8 +662,9 @@ scoped_ptr<ScopedResource> GLRenderer::DrawBackgroundFilters( |
scoped_ptr<ScopedResource> device_background_texture = |
ScopedResource::create(resource_provider_); |
if (!device_background_texture->Allocate(window_rect.size(), |
- GL_RGB, |
- ResourceProvider::TextureUsageAny)) { |
+ GL_RGBA, |
vangelis
2013/09/11 06:11:37
Is the switch from RGB to RGBA done on purpose her
kaanb
2013/09/12 07:53:44
Yes, epenner@ thought it was a bug we were using G
|
+ ResourceProvider::TextureUsageAny, |
+ ResourceProvider::RGBA_8888)) { |
return scoped_ptr<ScopedResource>(); |
} else { |
ResourceProvider::ScopedWriteLockGL lock(resource_provider_, |
@@ -689,7 +690,8 @@ scoped_ptr<ScopedResource> GLRenderer::DrawBackgroundFilters( |
ScopedResource::create(resource_provider_); |
if (!background_texture->Allocate(quad->rect.size(), |
GL_RGBA, |
- ResourceProvider::TextureUsageFramebuffer)) |
+ ResourceProvider::TextureUsageFramebuffer, |
+ ResourceProvider::RGBA_8888)) |
return scoped_ptr<ScopedResource>(); |
const RenderPass* target_render_pass = frame->current_render_pass; |
@@ -1714,7 +1716,9 @@ void GLRenderer::DrawPictureQuad(const DrawingFrame* frame, |
GL_RGBA, |
GL_TEXTURE_POOL_UNMANAGED_CHROMIUM, |
GL_CLAMP_TO_EDGE, |
- ResourceProvider::TextureUsageAny); |
+ ResourceProvider::TextureUsageAny, |
+ settings_->use_rgba_4444_textures |
+ ? ResourceProvider::RGBA_4444 : ResourceProvider::RGBA_8888); |
} |
SkBitmapDevice device(on_demand_tile_raster_bitmap_); |
@@ -1723,9 +1727,20 @@ void GLRenderer::DrawPictureQuad(const DrawingFrame* frame, |
quad->picture_pile->RasterToBitmap(&canvas, quad->content_rect, |
quad->contents_scale, NULL); |
+ const uint8_t* bitmap_pixels = NULL; |
+ if (settings_->use_rgba_4444_textures) { |
+ on_demand_tile_raster_bitmap_.copyTo( |
+ &on_demand_tile_raster_bitmap_4444_, SkBitmap::kARGB_4444_Config); |
+ bitmap_pixels = reinterpret_cast<uint8_t*>( |
+ on_demand_tile_raster_bitmap_4444_.getPixels()); |
+ } else { |
+ bitmap_pixels = reinterpret_cast<uint8_t*>( |
+ on_demand_tile_raster_bitmap_.getPixels()); |
+ } |
+ |
resource_provider_->SetPixels( |
on_demand_tile_raster_resource_id_, |
- reinterpret_cast<uint8_t*>(on_demand_tile_raster_bitmap_.getPixels()), |
+ bitmap_pixels, |
gfx::Rect(quad->texture_size), |
gfx::Rect(quad->texture_size), |
gfx::Vector2d()); |