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

Unified Diff: cc/output/direct_renderer.cc

Issue 208213003: Plumb overlay processing into DirectRenderer. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: More plumbing Created 6 years, 9 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/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 =
« no previous file with comments | « cc/output/direct_renderer.h ('k') | cc/output/gl_renderer.h » ('j') | cc/output/gl_renderer.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698