Flutter Engine Uber Docs
Docs for the entire Flutter Engine repo.
 
Loading...
Searching...
No Matches
flutter::DlDeferredImageGPUSkia Class Referencefinal

#include <display_list_deferred_image_gpu_skia.h>

Inheritance diagram for flutter::DlDeferredImageGPUSkia:
flutter::DlImageSkia flutter::DlImage

Public Member Functions

 ~DlDeferredImageGPUSkia () override
 
sk_sp< SkImage > skia_image () const override
 
bool isOpaque () const override
 If the pixel format of this image ignores alpha, this returns true. This method might conservatively return false when it cannot guarnatee an opaque image, for example when the pixel format of the image supports alpha but the image is made up of entirely opaque pixels.
 
bool isUIThreadSafe () const override
 If the underlying platform image held by this object has no threading requirements for the release of that image (or if arrangements have already been made to forward that image to the correct thread upon deletion), this method returns true.
 
DlISize GetSize () const override
 
virtual size_t GetApproximateByteSize () const override
 
std::optional< std::string > get_error () const override
 
OwningContext owning_context () const override
 
- Public Member Functions inherited from flutter::DlImageSkia
 DlImageSkia (sk_sp< SkImage > image)
 
 ~DlImageSkia () override
 
Type GetImageType () const override
 Returns the backend type of this image.
 
const DlImageSkiaasSkiaImage () const override
 Safe downcast to DlImageSkia.
 
bool isTextureBacked () const override
 Returns true if the image is backed by a GPU texture.
 
bool isOpaque () const override
 If the pixel format of this image ignores alpha, this returns true. This method might conservatively return false when it cannot guarnatee an opaque image, for example when the pixel format of the image supports alpha but the image is made up of entirely opaque pixels.
 
bool isUIThreadSafe () const override
 If the underlying platform image held by this object has no threading requirements for the release of that image (or if arrangements have already been made to forward that image to the correct thread upon deletion), this method returns true.
 
DlISize GetSize () const override
 
size_t GetApproximateByteSize () const override
 
DlColorSpace GetColorSpace () const override
 Gets the color space of the image.
 
- Public Member Functions inherited from flutter::DlImage
virtual ~DlImage ()
 
virtual const impeller::DlImageImpellerasImpellerImage () const
 Safe downcast to DlImageImpeller.
 
int width () const
 
int height () const
 
DlIRect GetBounds () const
 
bool Equals (const DlImage *other) const
 
bool Equals (const DlImage &other) const
 
bool Equals (const sk_sp< const DlImage > &other) const
 

Static Public Member Functions

static sk_sp< DlDeferredImageGPUSkiaMake (const SkImageInfo &image_info, sk_sp< DisplayList > display_list, fml::TaskRunnerAffineWeakPtr< SnapshotDelegate > snapshot_delegate, const fml::RefPtr< fml::TaskRunner > &raster_task_runner, fml::RefPtr< SkiaUnrefQueue > unref_queue)
 
static sk_sp< DlDeferredImageGPUSkiaMakeFromLayerTree (const SkImageInfo &image_info, std::unique_ptr< LayerTree > layer_tree, fml::TaskRunnerAffineWeakPtr< SnapshotDelegate > snapshot_delegate, const fml::RefPtr< fml::TaskRunner > &raster_task_runner, fml::RefPtr< SkiaUnrefQueue > unref_queue)
 
- Static Public Member Functions inherited from flutter::DlImageSkia
static sk_sp< DlImageMake (const SkImage *image)
 
static sk_sp< DlImageMake (sk_sp< SkImage > image)
 

Additional Inherited Members

- Public Types inherited from flutter::DlImage
enum class  OwningContext {
  kRaster ,
  kIO
}
 
enum class  Type {
  kSkia ,
  kImpeller
}
 The backend type of this image. More...
 
- Protected Member Functions inherited from flutter::DlImage
 DlImage ()
 

Detailed Description

Definition at line 27 of file display_list_deferred_image_gpu_skia.h.

Constructor & Destructor Documentation

◆ ~DlDeferredImageGPUSkia()

flutter::DlDeferredImageGPUSkia::~DlDeferredImageGPUSkia ( )
override

Definition at line 50 of file display_list_deferred_image_gpu_skia.cc.

50 {
51 fml::TaskRunner::RunNowOrPostTask(raster_task_runner_,
52 [image_wrapper = image_wrapper_]() {
53 if (!image_wrapper) {
54 return;
55 }
56 image_wrapper->Unregister();
57 image_wrapper->DeleteTexture();
58 });
59}
static void RunNowOrPostTask(const fml::RefPtr< fml::TaskRunner > &runner, const fml::closure &task)

References fml::TaskRunner::RunNowOrPostTask().

Member Function Documentation

◆ get_error()

std::optional< std::string > flutter::DlDeferredImageGPUSkia::get_error ( ) const
overridevirtual
Returns
An error, if any, that occurred when trying to create the image.

Reimplemented from flutter::DlImage.

Definition at line 89 of file display_list_deferred_image_gpu_skia.cc.

89 {
90 return image_wrapper_ ? image_wrapper_->get_error() : std::nullopt;
91}

◆ GetApproximateByteSize()

size_t flutter::DlDeferredImageGPUSkia::GetApproximateByteSize ( ) const
overridevirtual
Returns
The approximate byte size of the allocation of this image. This takes into account details such as mip-mapping. The allocation is usually resident in device memory.

Implements flutter::DlImage.

Definition at line 83 of file display_list_deferred_image_gpu_skia.cc.

83 {
84 return sizeof(*this) +
85 (image_wrapper_ ? image_wrapper_->image_info().computeMinByteSize()
86 : 0);
87}

◆ GetSize()

DlISize flutter::DlDeferredImageGPUSkia::GetSize ( ) const
overridevirtual
Returns
The dimensions of the pixel grid.

Implements flutter::DlImage.

Definition at line 77 of file display_list_deferred_image_gpu_skia.cc.

77 {
78 return image_wrapper_ ? ToDlISize(image_wrapper_->image_info().dimensions())
79 : DlISize();
80}
const DlISize & ToDlISize(const SkISize &size)
impeller::ISize32 DlISize

References flutter::ToDlISize().

◆ isOpaque()

bool flutter::DlDeferredImageGPUSkia::isOpaque ( ) const
overridevirtual

If the pixel format of this image ignores alpha, this returns true. This method might conservatively return false when it cannot guarnatee an opaque image, for example when the pixel format of the image supports alpha but the image is made up of entirely opaque pixels.

Returns
True if the pixel format of this image ignores alpha.

Implements flutter::DlImage.

Definition at line 67 of file display_list_deferred_image_gpu_skia.cc.

67 {
68 return image_wrapper_ ? image_wrapper_->image_info().isOpaque() : false;
69}

◆ isUIThreadSafe()

bool flutter::DlDeferredImageGPUSkia::isUIThreadSafe ( ) const
overridevirtual

If the underlying platform image held by this object has no threading requirements for the release of that image (or if arrangements have already been made to forward that image to the correct thread upon deletion), this method returns true.

Returns
True if the underlying image is held in a thread-safe manner.

Implements flutter::DlImage.

Definition at line 72 of file display_list_deferred_image_gpu_skia.cc.

72 {
73 return true;
74}

◆ Make()

sk_sp< DlDeferredImageGPUSkia > flutter::DlDeferredImageGPUSkia::Make ( const SkImageInfo &  image_info,
sk_sp< DisplayList display_list,
fml::TaskRunnerAffineWeakPtr< SnapshotDelegate snapshot_delegate,
const fml::RefPtr< fml::TaskRunner > &  raster_task_runner,
fml::RefPtr< SkiaUnrefQueue unref_queue 
)
static

Definition at line 16 of file display_list_deferred_image_gpu_skia.cc.

21 {
22 return sk_sp<DlDeferredImageGPUSkia>(new DlDeferredImageGPUSkia(
23 ImageWrapper::Make(image_info, std::move(display_list),
24 std::move(snapshot_delegate), raster_task_runner,
25 std::move(unref_queue)),
26 raster_task_runner));
27}

Referenced by flutter::CreateDeferredImage().

◆ MakeFromLayerTree()

sk_sp< DlDeferredImageGPUSkia > flutter::DlDeferredImageGPUSkia::MakeFromLayerTree ( const SkImageInfo &  image_info,
std::unique_ptr< LayerTree layer_tree,
fml::TaskRunnerAffineWeakPtr< SnapshotDelegate snapshot_delegate,
const fml::RefPtr< fml::TaskRunner > &  raster_task_runner,
fml::RefPtr< SkiaUnrefQueue unref_queue 
)
static

Definition at line 29 of file display_list_deferred_image_gpu_skia.cc.

34 {
35 return sk_sp<DlDeferredImageGPUSkia>(new DlDeferredImageGPUSkia(
36 ImageWrapper::MakeFromLayerTree(
37 image_info, std::move(layer_tree), std::move(snapshot_delegate),
38 raster_task_runner, std::move(unref_queue)),
39 raster_task_runner));
40}

Referenced by flutter::CreateDeferredImage().

◆ owning_context()

OwningContext flutter::DlDeferredImageGPUSkia::owning_context ( ) const
inlineoverridevirtual
Returns
Specifies which context was used to create this image. The image must be collected on the same task runner as its context.

Reimplemented from flutter::DlImage.

Definition at line 70 of file display_list_deferred_image_gpu_skia.h.

References flutter::DlImage::kRaster.

◆ skia_image()

sk_sp< SkImage > flutter::DlDeferredImageGPUSkia::skia_image ( ) const
overridevirtual

Reimplemented from flutter::DlImageSkia.

Definition at line 62 of file display_list_deferred_image_gpu_skia.cc.

62 {
63 return image_wrapper_ ? image_wrapper_->CreateSkiaImage() : nullptr;
64};

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