/* * Copyright 2018 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #include "src/gpu/ops/GrDrawableOp.h" #include "include/core/SkDrawable.h" #include "include/private/GrRecordingContext.h" #include "src/gpu/GrGpuCommandBuffer.h" #include "src/gpu/GrMemoryPool.h" #include "src/gpu/GrOpFlushState.h" #include "src/gpu/GrRecordingContextPriv.h" std::unique_ptr GrDrawableOp::Make( GrRecordingContext* context, std::unique_ptr drawable, const SkRect& bounds) { GrOpMemoryPool* pool = context->priv().opMemoryPool(); return pool->allocate(std::move(drawable), bounds); } GrDrawableOp::GrDrawableOp(std::unique_ptr drawable, const SkRect& bounds) : INHERITED(ClassID()) , fDrawable(std::move(drawable)) { this->setBounds(bounds, HasAABloat::kNo, IsZeroArea::kNo); } void GrDrawableOp::onExecute(GrOpFlushState* state, const SkRect& chainBounds) { SkASSERT(state->commandBuffer()); state->rtCommandBuffer()->executeDrawable(std::move(fDrawable)); }