Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | List of all members
skgpu::graphite::CopyTextureToBufferTask Class Referencefinal

#include <CopyTask.h>

Inheritance diagram for skgpu::graphite::CopyTextureToBufferTask:
skgpu::graphite::Task SkRefCnt SkRefCntBase

Public Member Functions

 ~CopyTextureToBufferTask () override
 
Status prepareResources (ResourceProvider *, const RuntimeEffectDictionary *) override
 
Status addCommands (Context *, CommandBuffer *, ReplayTargetData) override
 
- Public Member Functions inherited from SkRefCntBase
 SkRefCntBase ()
 
virtual ~SkRefCntBase ()
 
bool unique () const
 
void ref () const
 
void unref () const
 

Static Public Member Functions

static sk_sp< CopyTextureToBufferTaskMake (sk_sp< TextureProxy >, SkIRect srcRect, sk_sp< Buffer >, size_t bufferOffset, size_t bufferRowBytes)
 

Additional Inherited Members

- Public Types inherited from skgpu::graphite::Task
enum class  Status { kSuccess , kDiscard , kFail }
 

Detailed Description

Definition at line 52 of file CopyTask.h.

Constructor & Destructor Documentation

◆ ~CopyTextureToBufferTask()

skgpu::graphite::CopyTextureToBufferTask::~CopyTextureToBufferTask ( )
override

Definition at line 86 of file CopyTask.cpp.

86{}

Member Function Documentation

◆ addCommands()

Task::Status skgpu::graphite::CopyTextureToBufferTask::addCommands ( Context ,
CommandBuffer commandBuffer,
ReplayTargetData   
)
overridevirtual

Implements skgpu::graphite::Task.

Definition at line 101 of file CopyTask.cpp.

103 {
104 if (commandBuffer->copyTextureToBuffer(fTextureProxy->refTexture(),
105 fSrcRect,
106 std::move(fBuffer),
107 fBufferOffset,
108 fBufferRowBytes)) {
109 // TODO(b/332681367): CopyTextureToBuffer is currently only used for readback operations,
110 // which are a one-time event. Should this just default to returning kDiscard?
111 return Status::kSuccess;
112 } else {
113 return Status::kFail;
114 }
115}

◆ Make()

sk_sp< CopyTextureToBufferTask > skgpu::graphite::CopyTextureToBufferTask::Make ( sk_sp< TextureProxy textureProxy,
SkIRect  srcRect,
sk_sp< Buffer buffer,
size_t  bufferOffset,
size_t  bufferRowBytes 
)
static

Definition at line 62 of file CopyTask.cpp.

66 {
67 return sk_sp<CopyTextureToBufferTask>(new CopyTextureToBufferTask(std::move(textureProxy),
68 srcRect,
69 std::move(buffer),
70 bufferOffset,
71 bufferRowBytes));
72}
static const uint8_t buffer[]

◆ prepareResources()

Task::Status skgpu::graphite::CopyTextureToBufferTask::prepareResources ( ResourceProvider resourceProvider,
const RuntimeEffectDictionary  
)
overridevirtual

Implements skgpu::graphite::Task.

Definition at line 88 of file CopyTask.cpp.

89 {
90 if (!fTextureProxy) {
91 SKGPU_LOG_E("No texture proxy specified for CopyTextureToBufferTask");
92 return Status::kFail;
93 }
94 if (!TextureProxy::InstantiateIfNotLazy(resourceProvider, fTextureProxy.get())) {
95 SKGPU_LOG_E("Could not instantiate texture proxy for CopyTextureToBufferTask!");
96 return Status::kFail;
97 }
98 return Status::kSuccess;
99}
#define SKGPU_LOG_E(fmt,...)
Definition Log.h:38
static bool InstantiateIfNotLazy(ResourceProvider *, TextureProxy *)

The documentation for this class was generated from the following files: