Flutter Engine
The Flutter Engine
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Public Member Functions | Static Public Member Functions | List of all members
skgpu::graphite::UploadTask Class Referencefinal

#include <UploadTask.h>

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

Public Member Functions

 ~UploadTask () override
 
Status prepareResources (ResourceProvider *, ScratchResourceManager *, const RuntimeEffectDictionary *) override
 
Status addCommands (Context *, CommandBuffer *, ReplayTargetData) override
 
virtual Status prepareResources (ResourceProvider *, ScratchResourceManager *, const RuntimeEffectDictionary *)=0
 
virtual Status addCommands (Context *, CommandBuffer *, ReplayTargetData)=0
 
- 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< UploadTaskMake (UploadList *)
 
static sk_sp< UploadTaskMake (UploadInstance)
 

Additional Inherited Members

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

Detailed Description

Definition at line 146 of file UploadTask.h.

Constructor & Destructor Documentation

◆ ~UploadTask()

skgpu::graphite::UploadTask::~UploadTask ( )
override

Definition at line 447 of file UploadTask.cpp.

447{}

Member Function Documentation

◆ addCommands()

Task::Status skgpu::graphite::UploadTask::addCommands ( Context context,
CommandBuffer commandBuffer,
ReplayTargetData  replayData 
)
overridevirtual

Implements skgpu::graphite::Task.

Definition at line 463 of file UploadTask.cpp.

465 {
466 int discardCount = 0;
467 for (int i = 0; i < fInstances.size(); ++i) {
468 if (!fInstances[i].isValid()) {
469 discardCount++;
470 continue;
471 }
472 Status status = fInstances[i].addCommand(context, commandBuffer, replayData);
473 if (status == Status::kFail) {
474 return Status::kFail;
475 } else if (status == Status::kDiscard) {
476 fInstances[i] = UploadInstance::Invalid();
477 discardCount++;
478 }
479 }
480
481 if (discardCount == fInstances.size()) {
482 return Status::kDiscard;
483 } else {
484 return Status::kSuccess;
485 }
486}
static UploadInstance Invalid()
Definition: UploadTask.h:84

◆ Make() [1/2]

sk_sp< UploadTask > skgpu::graphite::UploadTask::Make ( UploadInstance  instance)
static

Definition at line 433 of file UploadTask.cpp.

433 {
434 if (!instance.isValid()) {
435 return nullptr;
436 }
437 return sk_sp<UploadTask>(new UploadTask(std::move(instance)));
438}
VkInstance instance
Definition: main.cc:48

◆ Make() [2/2]

sk_sp< UploadTask > skgpu::graphite::UploadTask::Make ( UploadList uploadList)
static

Definition at line 425 of file UploadTask.cpp.

425 {
426 SkASSERT(uploadList);
427 if (!uploadList->size()) {
428 return nullptr;
429 }
430 return sk_sp<UploadTask>(new UploadTask(std::move(uploadList->fInstances)));
431}
#define SkASSERT(cond)
Definition: SkAssert.h:116

◆ prepareResources()

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

Implements skgpu::graphite::Task.

Definition at line 449 of file UploadTask.cpp.

451 {
452 for (int i = 0; i < fInstances.size(); ++i) {
453 // No upload should be invalidated before prepareResources() is called.
454 SkASSERT(fInstances[i].isValid());
455 if (!fInstances[i].prepareResources(resourceProvider)) {
456 return Status::kFail;
457 }
458 }
459
460 return Status::kSuccess;
461}
Status prepareResources(ResourceProvider *, ScratchResourceManager *, const RuntimeEffectDictionary *) override
Definition: UploadTask.cpp:449

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