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

Unified Diff: cc/output/overlay_processor.cc

Issue 1304303002: Mac Overlays: Add sandwich strategy (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@overlay_debug
Patch Set: Ready for pre-review Created 5 years, 4 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/overlay_processor.cc
diff --git a/cc/output/overlay_processor.cc b/cc/output/overlay_processor.cc
index baae69dd10ed2bbe04e9178b1948c743a3356d23..463216b3947cfcba3e4bca64d7d89ab6f062c7f6 100644
--- a/cc/output/overlay_processor.cc
+++ b/cc/output/overlay_processor.cc
@@ -5,6 +5,7 @@
#include "cc/output/overlay_processor.h"
#include "cc/output/output_surface.h"
+#include "cc/output/overlay_strategy_sandwich.h"
#include "cc/output/overlay_strategy_single_on_top.h"
#include "cc/output/overlay_strategy_underlay.h"
#include "ui/gfx/geometry/rect_conversions.h"
@@ -12,6 +13,9 @@
namespace cc {
+OverlayProcessor::RendererState::RendererState() : device_scale_factor(1) {}
+OverlayProcessor::RendererState::~RendererState() {}
+
OverlayProcessor::OverlayProcessor(OutputSurface* surface) : surface_(surface) {
}
@@ -21,22 +25,30 @@ void OverlayProcessor::Initialize() {
OverlayCandidateValidator* candidates =
surface_->GetOverlayCandidateValidator();
if (candidates) {
+#if defined(OS_MACOSX)
ccameron 2015/08/23 21:29:05 Is this (the #ifdef) a reasonable way to go about
alexst (slow to review) 2015/08/24 15:07:02 I hope to keep this platform agnostic. Maybe we co
+ strategies_.push_back(
+ scoped_ptr<Strategy>(new OverlayStrategySandwich(candidates)));
+#else
strategies_.push_back(
scoped_ptr<Strategy>(new OverlayStrategySingleOnTop(candidates)));
strategies_.push_back(
scoped_ptr<Strategy>(new OverlayStrategyUnderlay(candidates)));
+#endif
}
}
OverlayProcessor::~OverlayProcessor() {}
void OverlayProcessor::ProcessForOverlays(
+ const OverlayProcessor::RendererState& renderer_state,
RenderPassList* render_passes_in_draw_order,
OverlayCandidateList* candidate_list) {
for (StrategyList::iterator it = strategies_.begin(); it != strategies_.end();
++it) {
- if ((*it)->Attempt(render_passes_in_draw_order, candidate_list))
+ if ((*it)->Attempt(renderer_state, render_passes_in_draw_order,
+ candidate_list)) {
return;
+ }
}
}

Powered by Google App Engine
This is Rietveld 408576698