Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
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 *, 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< 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 444 of file UploadTask.cpp.

444{}

Member Function Documentation

◆ addCommands()

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

Implements skgpu::graphite::Task.

Definition at line 459 of file UploadTask.cpp.

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

◆ Make() [1/2]

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

Definition at line 430 of file UploadTask.cpp.

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

◆ Make() [2/2]

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

Definition at line 422 of file UploadTask.cpp.

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

◆ prepareResources()

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

Implements skgpu::graphite::Task.

Definition at line 446 of file UploadTask.cpp.

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

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