Chromium Code Reviews| Index: cc/output/direct_renderer.cc |
| diff --git a/cc/output/direct_renderer.cc b/cc/output/direct_renderer.cc |
| index 1eb0fbc2af680bdfff66211567011f46c6e0a0d7..6a7f96d5dd7a969a1210be3a741653ee6acfd029 100644 |
| --- a/cc/output/direct_renderer.cc |
| +++ b/cc/output/direct_renderer.cc |
| @@ -58,7 +58,8 @@ static gfx::Transform window_matrix(int x, int y, int width, int height) { |
| namespace cc { |
| DirectRenderer::DrawingFrame::DrawingFrame() |
| - : root_render_pass(NULL), |
| + : render_passes_in_draw_order(NULL), |
| + root_render_pass(NULL), |
| current_render_pass(NULL), |
| current_texture(NULL), |
| offscreen_context_provider(NULL) {} |
| @@ -133,7 +134,11 @@ DirectRenderer::DirectRenderer(RendererClient* client, |
| ResourceProvider* resource_provider) |
| : Renderer(client, settings), |
| output_surface_(output_surface), |
| - resource_provider_(resource_provider) {} |
| + resource_provider_(resource_provider), |
| + overlay_processor_( |
| + new OverlayProcessor(output_surface, resource_provider)) { |
| + overlay_processor_->Initialize(); |
| +} |
| DirectRenderer::~DirectRenderer() {} |
| @@ -218,6 +223,9 @@ void DirectRenderer::DrawFrame(RenderPassList* render_passes_in_draw_order, |
| frame.disable_picture_quad_image_filtering = |
| disable_picture_quad_image_filtering; |
| + if (overlay_processor_->ProcessForOverlays(render_passes_in_draw_order)) |
| + frame.render_passes_in_draw_order = render_passes_in_draw_order; |
|
enne (OOO)
2014/03/21 18:15:49
This variable is a little awkward. It says render
enne (OOO)
2014/03/21 18:16:08
(Er, sorry, I see that it's not just used as a boo
alexst (slow to review)
2014/03/21 18:37:41
It's not useful unless overlays are present, so it
piman
2014/03/21 21:45:12
Do you have a CL that shows how it will be used? Y
alexst (slow to review)
2014/03/24 12:46:45
I'll add more code so this makes more sense. I was
|
| + |
| EnsureBackbuffer(); |
| // Only reshape when we know we are going to draw. Otherwise, the reshape |
| @@ -228,6 +236,9 @@ void DirectRenderer::DrawFrame(RenderPassList* render_passes_in_draw_order, |
| BeginDrawingFrame(&frame); |
| for (size_t i = 0; i < render_passes_in_draw_order->size(); ++i) { |
| RenderPass* pass = render_passes_in_draw_order->at(i); |
| + if (pass->overlay_state == RenderPass::SIMPLE_OVERLAY) |
| + continue; |
| + |
| DrawRenderPass(&frame, pass); |
| for (ScopedPtrVector<CopyOutputRequest>::iterator it = |