1cb93a386Sopenharmony_ci/* 2cb93a386Sopenharmony_ci * Copyright 2019 Google LLC 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#ifndef GrTextureResolveRenderTask_DEFINED 9cb93a386Sopenharmony_ci#define GrTextureResolveRenderTask_DEFINED 10cb93a386Sopenharmony_ci 11cb93a386Sopenharmony_ci#include "src/gpu/GrRenderTask.h" 12cb93a386Sopenharmony_ci 13cb93a386Sopenharmony_ciclass GrTextureResolveRenderTask final : public GrRenderTask { 14cb93a386Sopenharmony_cipublic: 15cb93a386Sopenharmony_ci GrTextureResolveRenderTask() : GrRenderTask() {} 16cb93a386Sopenharmony_ci 17cb93a386Sopenharmony_ci void addProxy(GrDrawingManager*, sk_sp<GrSurfaceProxy> proxy, 18cb93a386Sopenharmony_ci GrSurfaceProxy::ResolveFlags, const GrCaps&); 19cb93a386Sopenharmony_ci 20cb93a386Sopenharmony_ciprivate: 21cb93a386Sopenharmony_ci bool onIsUsed(GrSurfaceProxy* proxy) const override { 22cb93a386Sopenharmony_ci return false; 23cb93a386Sopenharmony_ci } 24cb93a386Sopenharmony_ci void gatherProxyIntervals(GrResourceAllocator*) const override; 25cb93a386Sopenharmony_ci 26cb93a386Sopenharmony_ci ExpectedOutcome onMakeClosed(GrRecordingContext*, SkIRect*) override { 27cb93a386Sopenharmony_ci return ExpectedOutcome::kTargetUnchanged; 28cb93a386Sopenharmony_ci } 29cb93a386Sopenharmony_ci 30cb93a386Sopenharmony_ci bool onExecute(GrOpFlushState*) override; 31cb93a386Sopenharmony_ci 32cb93a386Sopenharmony_ci#if GR_TEST_UTILS 33cb93a386Sopenharmony_ci const char* name() const final { return "TextureResolve"; } 34cb93a386Sopenharmony_ci#endif 35cb93a386Sopenharmony_ci#ifdef SK_DEBUG 36cb93a386Sopenharmony_ci void visitProxies_debugOnly(const GrVisitProxyFunc&) const override; 37cb93a386Sopenharmony_ci#endif 38cb93a386Sopenharmony_ci 39cb93a386Sopenharmony_ci struct Resolve { 40cb93a386Sopenharmony_ci Resolve(GrSurfaceProxy::ResolveFlags flags) : fFlags(flags) {} 41cb93a386Sopenharmony_ci GrSurfaceProxy::ResolveFlags fFlags; 42cb93a386Sopenharmony_ci SkIRect fMSAAResolveRect; 43cb93a386Sopenharmony_ci }; 44cb93a386Sopenharmony_ci 45cb93a386Sopenharmony_ci SkSTArray<4, Resolve> fResolves; 46cb93a386Sopenharmony_ci}; 47cb93a386Sopenharmony_ci 48cb93a386Sopenharmony_ci#endif 49