Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Public Member Functions | List of all members
SkKeyedImage Class Reference

#include <SkKeyedImage.h>

Public Member Functions

 SkKeyedImage ()
 
 SkKeyedImage (sk_sp< SkImage >)
 
 SkKeyedImage (const SkBitmap &)
 
 SkKeyedImage (SkKeyedImage &&)=default
 
 SkKeyedImage (const SkKeyedImage &)=default
 
SkKeyedImageoperator= (SkKeyedImage &&)=default
 
SkKeyedImageoperator= (const SkKeyedImage &)=default
 
 operator bool () const
 
const SkBitmapKeykey () const
 
const sk_sp< SkImage > & image () const
 
sk_sp< SkImagerelease ()
 
SkKeyedImage subset (SkIRect subset) const
 

Detailed Description

This class has all the advantages of SkBitmaps and SkImages.

The SkImage holds on to encoded data. The SkBitmapKey properly de-dups subsets.

Definition at line 19 of file SkKeyedImage.h.

Constructor & Destructor Documentation

◆ SkKeyedImage() [1/5]

SkKeyedImage::SkKeyedImage ( )
inline

Definition at line 21 of file SkKeyedImage.h.

21{}

◆ SkKeyedImage() [2/5]

SkKeyedImage::SkKeyedImage ( sk_sp< SkImage i)

Definition at line 23 of file SkKeyedImage.cpp.

23 : fImage(std::move(i)) {
24 fKey = SkBitmapKeyFromImage(fImage.get());
25}
SkBitmapKey SkBitmapKeyFromImage(const SkImage *)
T * get() const
Definition SkRefCnt.h:303

◆ SkKeyedImage() [3/5]

SkKeyedImage::SkKeyedImage ( const SkBitmap bm)

Definition at line 27 of file SkKeyedImage.cpp.

27 : fImage(bm.asImage()) {
28 if (fImage) {
29 fKey = {bm.getSubset(), bm.getGenerationID()};
30 }
31}
sk_sp< SkImage > asImage() const
Definition SkBitmap.cpp:645
SkIRect getSubset() const
Definition SkBitmap.h:394
uint32_t getGenerationID() const
Definition SkBitmap.cpp:361

◆ SkKeyedImage() [4/5]

SkKeyedImage::SkKeyedImage ( SkKeyedImage &&  )
default

◆ SkKeyedImage() [5/5]

SkKeyedImage::SkKeyedImage ( const SkKeyedImage )
default

Member Function Documentation

◆ image()

const sk_sp< SkImage > & SkKeyedImage::image ( ) const
inline

Definition at line 32 of file SkKeyedImage.h.

32{ return fImage; }

◆ key()

const SkBitmapKey & SkKeyedImage::key ( ) const
inline

Definition at line 31 of file SkKeyedImage.h.

31{ return fKey; }

◆ operator bool()

SkKeyedImage::operator bool ( ) const
inlineexplicit

Definition at line 30 of file SkKeyedImage.h.

30{ return fImage != nullptr; }

◆ operator=() [1/2]

SkKeyedImage & SkKeyedImage::operator= ( const SkKeyedImage )
default

◆ operator=() [2/2]

SkKeyedImage & SkKeyedImage::operator= ( SkKeyedImage &&  )
default

◆ release()

sk_sp< SkImage > SkKeyedImage::release ( )

Definition at line 44 of file SkKeyedImage.cpp.

44 {
45 sk_sp<SkImage> image = std::move(fImage);
46 SkASSERT(nullptr == fImage);
47 fKey = {{0, 0, 0, 0}, 0};
48 return image;
49}
#define SkASSERT(cond)
Definition SkAssert.h:116
const sk_sp< SkImage > & image() const

◆ subset()

SkKeyedImage SkKeyedImage::subset ( SkIRect  subset) const

Definition at line 33 of file SkKeyedImage.cpp.

33 {
34 SkKeyedImage img;
35 if (fImage && subset.intersect(fImage->bounds())) {
36 img.fImage = fImage->makeSubset(nullptr, subset);
37 if (img.fImage) {
38 img.fKey = {subset.makeOffset(fKey.fSubset.topLeft()), fKey.fID};
39 }
40 }
41 return img;
42}
SkIRect bounds() const
Definition SkImage.h:303
virtual sk_sp< SkImage > makeSubset(GrDirectContext *direct, const SkIRect &subset) const =0
SkKeyedImage subset(SkIRect subset) const
uint32_t fID
Definition SkBitmapKey.h:14
SkIRect fSubset
Definition SkBitmapKey.h:13
constexpr SkIPoint topLeft() const
Definition SkRect.h:151

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