Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
CopyTask.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_CopyTask_DEFINED
9#define skgpu_graphite_task_CopyTask_DEFINED
10
12
13#include "include/core/SkRect.h"
14
15namespace skgpu::graphite {
16
17class Buffer;
18class Texture;
19class TextureProxy;
20
21class CopyBufferToBufferTask final : public Task {
22public:
23 // The srcBuffer for this Task is always a transfer buffer which is owned by the
24 // UploadBufferManager. Thus we don't have to take a ref to it as the UploadBufferManager will
25 // handle its refs and passing them to the Recording.
26 static sk_sp<CopyBufferToBufferTask> Make(const Buffer* srcBuffer,
27 size_t srcOffset,
28 sk_sp<Buffer> dstBuffer,
29 size_t dstOffset,
30 size_t size);
31
33
35
37
38private:
39 CopyBufferToBufferTask(const Buffer* srcBuffer,
40 size_t srcOffset,
41 sk_sp<Buffer> dstBuffer,
42 size_t dstOffset,
43 size_t size);
44
45 const Buffer* fSrcBuffer;
46 size_t fSrcOffset;
47 sk_sp<Buffer> fDstBuffer;
48 size_t fDstOffset;
49 size_t fSize;
50};
51
52class CopyTextureToBufferTask final : public Task {
53public:
55 SkIRect srcRect,
57 size_t bufferOffset,
58 size_t bufferRowBytes);
59
60 ~CopyTextureToBufferTask() override;
61
63
65
66private:
68 SkIRect srcRect,
70 size_t bufferOffset,
71 size_t bufferRowBytes);
72
73 sk_sp<TextureProxy> fTextureProxy;
74 SkIRect fSrcRect;
75 sk_sp<Buffer> fBuffer;
76 size_t fBufferOffset;
77 size_t fBufferRowBytes;
78};
79
80class CopyTextureToTextureTask final : public Task {
81public:
83 SkIRect srcRect,
84 sk_sp<TextureProxy> dstProxy,
85 SkIPoint dstPoint,
86 int dstLevel = 0);
87
89
91
93
94private:
96 SkIRect srcRect,
97 sk_sp<TextureProxy> dstProxy,
98 SkIPoint dstPoint,
99 int dstLevel);
100
101 sk_sp<TextureProxy> fSrcProxy;
102 SkIRect fSrcRect;
103 sk_sp<TextureProxy> fDstProxy;
104 SkIPoint fDstPoint;
105 int fDstLevel;
106};
107
108} // namespace skgpu::graphite
109
110#endif // skgpu_graphite_task_CopyTask_DEFINED
Status prepareResources(ResourceProvider *, const RuntimeEffectDictionary *) override
Definition CopyTask.cpp:47
static sk_sp< CopyBufferToBufferTask > Make(const Buffer *srcBuffer, size_t srcOffset, sk_sp< Buffer > dstBuffer, size_t dstOffset, size_t size)
Definition CopyTask.cpp:18
Status addCommands(Context *, CommandBuffer *, ReplayTargetData) override
Definition CopyTask.cpp:52
static sk_sp< CopyTextureToBufferTask > Make(sk_sp< TextureProxy >, SkIRect srcRect, sk_sp< Buffer >, size_t bufferOffset, size_t bufferRowBytes)
Definition CopyTask.cpp:62
Status addCommands(Context *, CommandBuffer *, ReplayTargetData) override
Definition CopyTask.cpp:101
Status prepareResources(ResourceProvider *, const RuntimeEffectDictionary *) override
Definition CopyTask.cpp:88
Status prepareResources(ResourceProvider *, const RuntimeEffectDictionary *) override
Definition CopyTask.cpp:144
Status addCommands(Context *, CommandBuffer *, ReplayTargetData) override
Definition CopyTask.cpp:165
static sk_sp< CopyTextureToTextureTask > Make(sk_sp< TextureProxy > srcProxy, SkIRect srcRect, sk_sp< TextureProxy > dstProxy, SkIPoint dstPoint, int dstLevel=0)
Definition CopyTask.cpp:119