mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
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.
33 lines
972 B
C++
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
|