Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(196)

Unified Diff: cc/output/gl_renderer.cc

Issue 21159007: cc: Adding support for RGBA_4444 tile textures (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase and feedback Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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());

Powered by Google App Engine
This is Rietveld 408576698