Flutter Engine
The Flutter Engine
RenderPassTask.h
Go to the documentation of this file.
1/*
2 * Copyright 2021 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_RenderPassTask_DEFINED
9#define skgpu_graphite_task_RenderPassTask_DEFINED
10
14
15namespace skgpu::graphite {
16
17class DrawPass;
18
19/**
20 * RenderPassTask handles preparing and recording DrawLists into a single render pass within a
21 * command buffer. If the backend supports subpasses, and the DrawLists/surfaces are compatible, a
22 * RenderPassTask can execute multiple DrawLists across different surfaces as subpasses nested
23 * within a single render pass. If there is no such support, a RenderPassTask is one-to-one with a
24 * "render pass" to specific surface.
25 */
26class RenderPassTask final : public Task {
27public:
29
31 const RenderPassDesc&,
33
34 ~RenderPassTask() override;
35
38 const RuntimeEffectDictionary*) override;
39
41
42private:
44
45 DrawPassList fDrawPasses;
46 RenderPassDesc fRenderPassDesc;
47 sk_sp<TextureProxy> fTarget;
48};
49
50} // namespace skgpu::graphite
51
52#endif // skgpu_graphite_task_RenderPassTask_DEFINED
static sk_sp< RenderPassTask > Make(DrawPassList, const RenderPassDesc &, sk_sp< TextureProxy > target)
Status addCommands(Context *, CommandBuffer *, ReplayTargetData) override
Status prepareResources(ResourceProvider *, ScratchResourceManager *, const RuntimeEffectDictionary *) override
uint32_t * target