Landing Recent QUIC changes until 8/19/2015 17:00 UTC.
[chromium-blink-merge.git] / cc / output / overlay_strategy_underlay.h
blobe3214318f069421379a83500d982ad1689876783
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 OverlayStrategyCommonDelegate {
20 public:
21 OverlayStrategyUnderlay() {}
22 ~OverlayStrategyUnderlay() override;
24 bool TryOverlay(OverlayCandidateValidator* capability_checker,
25 RenderPassList* render_passes_in_draw_order,
26 OverlayCandidateList* candidate_list,
27 const OverlayCandidate& candidate,
28 QuadList::Iterator candidate_iterator,
29 float device_scale_factor) override;
31 private:
32 DISALLOW_COPY_AND_ASSIGN(OverlayStrategyUnderlay);
35 } // namespace cc
37 #endif // CC_OUTPUT_OVERLAY_STRATEGY_UNDERLAY_H_