Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
GrTransferFromRenderTask.h
Go to the documentation of this file.
1/*
2 * Copyright 2019 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 GrTransferFromRenderTask_DEFINED
9#define GrTransferFromRenderTask_DEFINED
10
11#include "include/core/SkRect.h"
19
20#include <cstddef>
21#include <utility>
22
23class GrOpFlushState;
26
28public:
30 const SkIRect& srcRect,
31 GrColorType surfaceColorType,
32 GrColorType dstColorType,
33 sk_sp<GrGpuBuffer> dstBuffer,
34 size_t dstOffset)
35 : GrRenderTask()
36 , fSrcProxy(std::move(srcProxy))
37 , fSrcRect(srcRect)
38 , fSurfaceColorType(surfaceColorType)
39 , fDstColorType(dstColorType)
40 , fDstBuffer(std::move(dstBuffer))
41 , fDstOffset(dstOffset) {}
42
43private:
44 bool onIsUsed(GrSurfaceProxy* proxy) const override {
45 SkASSERT(0 == this->numTargets());
46 return proxy == fSrcProxy.get();
47 }
48 void gatherProxyIntervals(GrResourceAllocator*) const override;
49
53
54 bool onExecute(GrOpFlushState*) override;
55
56#if defined(GR_TEST_UTILS)
57 const char* name() const final { return "TransferFrom"; }
58#endif
59#ifdef SK_DEBUG
60 void visitProxies_debugOnly(const GrVisitProxyFunc& func) const override {
61 func(fSrcProxy.get(), skgpu::Mipmapped::kNo);
62 }
63#endif
64
65 sk_sp<GrSurfaceProxy> fSrcProxy;
66 SkIRect fSrcRect;
67 GrColorType fSurfaceColorType;
68 GrColorType fDstColorType;
69 sk_sp<GrGpuBuffer> fDstBuffer;
70 size_t fDstOffset;
71
72};
73
74#endif
75
std::function< void(GrSurfaceProxy *, skgpu::Mipmapped)> GrVisitProxyFunc
GrColorType
#define SkASSERT(cond)
Definition SkAssert.h:116
int numTargets() const
bool onIsUsed(GrSurfaceProxy *proxy) const override
GrTransferFromRenderTask(sk_sp< GrSurfaceProxy > srcProxy, const SkIRect &srcRect, GrColorType surfaceColorType, GrColorType dstColorType, sk_sp< GrGpuBuffer > dstBuffer, size_t dstOffset)
ExpectedOutcome onMakeClosed(GrRecordingContext *, SkIRect *) override
void gatherProxyIntervals(GrResourceAllocator *) const override
bool onExecute(GrOpFlushState *) override
T * get() const
Definition SkRefCnt.h:303
const char * name
Definition fuchsia.cc:50
Definition ref_ptr.h:256