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

Unified Diff: cc/output/gl_renderer.cc

Issue 2163493002: Break glScheduleCALayerCHROMIUM into smaller functions. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@temp37_cleanup_calayeroverlay
Patch Set: Rebase. Created 4 years, 5 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 9456c005c2e19dd4f111a81a4984a05e9d31dc65..78f91c95c2d921aa7913f9b0701ee7a943a2fa33 100644
--- a/cc/output/gl_renderer.cc
+++ b/cc/output/gl_renderer.cc
@@ -3631,6 +3631,7 @@ bool GLRenderer::IsContextLost() {
}
void GLRenderer::ScheduleCALayers(DrawingFrame* frame) {
+ scoped_refptr<CALayerOverlaySharedState> shared_state;
for (const CALayerOverlay& ca_layer_overlay : frame->ca_layer_overlay_list) {
unsigned texture_id = 0;
if (ca_layer_overlay.contents_resource_id) {
@@ -3659,12 +3660,18 @@ void GLRenderer::ScheduleCALayers(DrawingFrame* frame) {
GLfloat transform[16];
ca_layer_overlay.shared_state->transform.asColMajorf(transform);
unsigned filter = ca_layer_overlay.filter;
+
+ if (ca_layer_overlay.shared_state != shared_state) {
+ shared_state = ca_layer_overlay.shared_state;
+ gl_->ScheduleCALayerSharedStateCHROMIUM(
+ ca_layer_overlay.shared_state->opacity, is_clipped, clip_rect,
+ sorting_context_id, transform);
+ }
gl_->ScheduleCALayerCHROMIUM(
- texture_id, contents_rect, ca_layer_overlay.shared_state->opacity,
- ca_layer_overlay.background_color, ca_layer_overlay.edge_aa_mask,
- bounds_rect, is_clipped, clip_rect, sorting_context_id, transform,
- filter);
+ texture_id, contents_rect, ca_layer_overlay.background_color,
+ ca_layer_overlay.edge_aa_mask, bounds_rect, filter);
}
+ gl_->UnscheduleCALayerSharedStateCHROMIUM();
}
void GLRenderer::ScheduleOverlays(DrawingFrame* frame) {

Powered by Google App Engine
This is Rietveld 408576698