flutter_flutter/sky/engine/core/painting/LayerDrawLooperBuilder.cpp
Adam Barth a1807a1b17 Remove weak handle from sky.Paint
This patch converts sky.Paint to be a pure Dart object, which means we don't
need to open a weak handle to sky.Paint. Avoiding the weak handle reduces the
amount of weak handle callbacks we need to process at the end of GC and
therefore reduces jank.
2015-08-11 09:37:20 -07:00

33 lines
972 B
C++

// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "sky/engine/core/painting/LayerDrawLooperBuilder.h"
#include "sky/engine/core/painting/DrawLooper.h"
#include "sky/engine/core/painting/DrawLooperLayerInfo.h"
#include "sky/engine/core/painting/Paint.h"
#include "third_party/skia/include/core/SkColorFilter.h"
namespace blink {
LayerDrawLooperBuilder::LayerDrawLooperBuilder() {
}
LayerDrawLooperBuilder::~LayerDrawLooperBuilder() {
}
PassRefPtr<DrawLooper> LayerDrawLooperBuilder::build() {
return DrawLooper::create(adoptRef(draw_looper_builder_.detachLooper()));
}
void LayerDrawLooperBuilder::addLayerOnTop(
DrawLooperLayerInfo* layer_info, const Paint& paint) {
SkPaint* sk_paint =
draw_looper_builder_.addLayerOnTop(layer_info->layer_info());
if (!paint.is_null)
*sk_paint = paint.sk_paint;
}
} // namespace blink