1 /* 2 * Copyright 2022 Google LLC 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 #ifndef skgpu_graphite_task_ClearBuffersTask_DEFINED 9 #define skgpu_graphite_task_ClearBuffersTask_DEFINED 10 11 #include "include/private/base/SkTArray.h" 12 #include "src/gpu/graphite/ResourceTypes.h" 13 #include "src/gpu/graphite/task/Task.h" 14 15 namespace skgpu::graphite { 16 17 /** 18 * Task that clears a region of a list of buffers to 0. 19 */ 20 class ClearBuffersTask final : public Task { 21 public: 22 static sk_sp<ClearBuffersTask> Make(skia_private::TArray<BindBufferInfo>); 23 ~ClearBuffersTask() override; 24 prepareResources(ResourceProvider *,ScratchResourceManager *,const RuntimeEffectDictionary *)25 Status prepareResources(ResourceProvider*, 26 ScratchResourceManager*, 27 const RuntimeEffectDictionary*) override { 28 return Status::kSuccess; 29 } 30 31 Status addCommands(Context*, CommandBuffer*, ReplayTargetData) override; 32 33 private: ClearBuffersTask(skia_private::TArray<BindBufferInfo> clearList)34 explicit ClearBuffersTask(skia_private::TArray<BindBufferInfo> clearList) 35 : fClearList(std::move(clearList)) {} 36 37 skia_private::TArray<BindBufferInfo> fClearList; 38 }; 39 40 } // namespace skgpu::graphite 41 42 #endif // skgpu_graphite_task_ClearBuffersTask_DEFINED 43