[MD settings] merge polymer 1.0.11; hack for settings checkbox
[chromium-blink-merge.git] / cc / output / overlay_strategy_underlay.h
blobfd55bef43190f0faf6ca04ae9f2a1887df581192
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CC_OUTPUT_OVERLAY_STRATEGY_UNDERLAY_H_
6 #define CC_OUTPUT_OVERLAY_STRATEGY_UNDERLAY_H_
8 #include "cc/output/overlay_strategy_common.h"
10 namespace cc {
11 class StreamVideoDrawQuad;
12 class TextureDrawQuad;
14 // The underlay strategy looks for a video quad without regard to quads above
15 // it. The video is "underlaid" through a black transparent quad substituted
16 // for the video quad. The overlay content can then be blended in by the
17 // hardware under the the scene. This is only valid for overlay contents that
18 // are fully opaque.
19 class CC_EXPORT OverlayStrategyUnderlay : public OverlayStrategyCommon {
20 public:
21 explicit OverlayStrategyUnderlay(
22 OverlayCandidateValidator* capability_checker);
23 bool TryOverlay(OverlayCandidateValidator* capability_checker,
24 RenderPassList* render_passes_in_draw_order,
25 OverlayCandidateList* candidate_list,
26 const OverlayCandidate& candidate,
27 QuadList::Iterator candidate_iterator) override;
29 private:
30 DISALLOW_COPY_AND_ASSIGN(OverlayStrategyUnderlay);
33 } // namespace cc
35 #endif // CC_OUTPUT_OVERLAY_STRATEGY_UNDERLAY_H_