1 // Copyright 2015 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 #include "ui/compositor/compositing_recorder.h"
7 #include "cc/resources/compositing_display_item.h"
8 #include "cc/resources/display_item_list.h"
9 #include "ui/compositor/paint_context.h"
10 #include "ui/gfx/canvas.h"
14 CompositingRecorder::CompositingRecorder(const PaintContext
& context
,
16 : context_(context
), saved_(alpha
< 255) {
20 if (context_
.canvas_
) {
21 context_
.canvas_
->SaveLayerAlpha(alpha
);
23 context_
.list_
->AppendItem(cc::CompositingDisplayItem::Create(
24 alpha
, SkXfermode::kSrcOver_Mode
, nullptr /* no bounds */,
25 skia::RefPtr
<SkColorFilter
>()));
29 CompositingRecorder::~CompositingRecorder() {
33 if (context_
.canvas_
) {
34 context_
.canvas_
->Restore();
36 context_
.list_
->AppendItem(cc::EndCompositingDisplayItem::Create());