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