blob: 679b914853f0f6835b8367385e0918d53eb94de4 [file] [log] [blame]
Robert Phillipsd2f53f92021-08-31 17:51:18 -04001/*
2 * Copyright 2018 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
8#include "src/gpu/ops/DrawableOp.h"
9
10#include "include/core/SkDrawable.h"
11#include "include/gpu/GrRecordingContext.h"
12#include "src/gpu/GrMemoryPool.h"
13#include "src/gpu/GrOpFlushState.h"
14#include "src/gpu/GrOpsRenderPass.h"
15#include "src/gpu/GrRecordingContextPriv.h"
16
17namespace skgpu::v1 {
18
19GrOp::Owner DrawableOp::Make(GrRecordingContext* context,
20 std::unique_ptr<SkDrawable::GpuDrawHandler> drawable,
21 const SkRect& bounds) {
22 return GrOp::Make<DrawableOp>(context, std::move(drawable), bounds);
23}
24
25DrawableOp::DrawableOp(std::unique_ptr<SkDrawable::GpuDrawHandler> drawable,
26 const SkRect& bounds)
27 : GrOp(ClassID())
28 , fDrawable(std::move(drawable)) {
29 this->setBounds(bounds, HasAABloat::kNo, IsHairline::kNo);
30}
31
32void DrawableOp::onExecute(GrOpFlushState* state, const SkRect& chainBounds) {
33 SkASSERT(state->opsRenderPass());
34 state->opsRenderPass()->executeDrawable(std::move(fDrawable));
35}
36
37} // namespace skgpu::v1