| Index: cc/output/direct_renderer.cc
|
| diff --git a/cc/output/direct_renderer.cc b/cc/output/direct_renderer.cc
|
| index 1eb0fbc2af680bdfff66211567011f46c6e0a0d7..a47dce1b884d0eb9b8d07b098b1c6066bd5f9c97 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),
|
| + : overlay_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.overlay_passes_in_draw_order = render_passes_in_draw_order;
|
| +
|
| 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 =
|
|
|