Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Static Public Member Functions | Private Member Functions | List of all members
skresources::DataURIResourceProviderProxy Class Referencefinal

#include <SkResources.h>

Inheritance diagram for skresources::DataURIResourceProviderProxy:
skresources::ResourceProviderProxyBase skresources::ResourceProvider SkRefCnt SkRefCntBase

Static Public Member Functions

static sk_sp< DataURIResourceProviderProxyMake (sk_sp< ResourceProvider > rp, ImageDecodeStrategy=ImageDecodeStrategy::kLazyDecode, sk_sp< const SkFontMgr > fontMgr=nullptr)
 

Private Member Functions

sk_sp< ImageAssetloadImageAsset (const char[], const char[], const char[]) const override
 
sk_sp< SkTypefaceloadTypeface (const char[], const char[]) const override
 

Additional Inherited Members

- Public Member Functions inherited from SkRefCntBase
 SkRefCntBase ()
 
virtual ~SkRefCntBase ()
 
bool unique () const
 
void ref () const
 
void unref () const
 
- Protected Member Functions inherited from skresources::ResourceProviderProxyBase
 ResourceProviderProxyBase (sk_sp< ResourceProvider >)
 
sk_sp< SkDataload (const char[], const char[]) const override
 
sk_sp< ImageAssetloadImageAsset (const char[], const char[], const char[]) const override
 
sk_sp< SkTypefaceloadTypeface (const char[], const char[]) const override
 
sk_sp< SkDataloadFont (const char[], const char[]) const override
 
sk_sp< ExternalTrackAssetloadAudioAsset (const char[], const char[], const char[]) override
 
- Protected Attributes inherited from skresources::ResourceProviderProxyBase
const sk_sp< ResourceProviderfProxy
 

Detailed Description

Definition at line 263 of file SkResources.h.

Member Function Documentation

◆ loadImageAsset()

sk_sp< ImageAsset > skresources::DataURIResourceProviderProxy::loadImageAsset ( const char  [],
const char  [],
const char  [] 
) const
overrideprivatevirtual

Load an image asset specified by |path| + |name|, and returns the corresponding ImageAsset proxy.

Reimplemented from skresources::ResourceProvider.

Definition at line 315 of file SkResources.cpp.

317 {
318 // First try to decode the data as base64 using codecs registered with SkCodecs::Register()
319 if (auto data = decode_datauri("data:image/", rname)) {
320 return MultiFrameImageAsset::Make(std::move(data), fStrategy);
321 }
322 // Fallback to the asking the ProviderProxy to load this image for us.
323 return this->INHERITED::loadImageAsset(rpath, rname, rid);
324}
static sk_sp< MultiFrameImageAsset > Make(sk_sp< SkData >, ImageDecodeStrategy=ImageDecodeStrategy::kLazyDecode)
sk_sp< ImageAsset > loadImageAsset(const char[], const char[], const char[]) const override
static sk_sp< SkData > decode_datauri(const char prefix[], const char uri[])

◆ loadTypeface()

sk_sp< SkTypeface > skresources::DataURIResourceProviderProxy::loadTypeface ( const char  [],
const char  [] 
) const
overrideprivatevirtual

Load an external font and return as SkTypeface.

Parameters
namefont name
urlweb font URL

Reimplemented from skresources::ResourceProvider.

Definition at line 326 of file SkResources.cpp.

327 {
328 if (fFontMgr) {
329 if (auto data = decode_datauri("data:font/", url)) {
330 return fFontMgr->makeFromData(std::move(data));
331 }
332 }
333
334 return this->INHERITED::loadTypeface(name, url);
335}
sk_sp< SkTypeface > makeFromData(sk_sp< SkData >, int ttcIndex=0) const
sk_sp< SkTypeface > loadTypeface(const char[], const char[]) const override
const char * name
Definition fuchsia.cc:50

◆ Make()

sk_sp< DataURIResourceProviderProxy > skresources::DataURIResourceProviderProxy::Make ( sk_sp< ResourceProvider rp,
ImageDecodeStrategy  strat = ImageDecodeStrategy::kLazyDecode,
sk_sp< const SkFontMgr fontMgr = nullptr 
)
static

Definition at line 272 of file SkResources.cpp.

274 {
276 new DataURIResourceProviderProxy(std::move(rp), strat, std::move(mgr)));
277}

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