24 if (codec ==
nullptr) {
32 std::unique_ptr<SkCodec> codec, std::optional<SkAlphaType> at) {
33 return codec ? std::unique_ptr<SkImageGenerator>(
54SkCodecImageGenerator::SkCodecImageGenerator(std::unique_ptr<SkCodec> codec,
55 std::optional<SkAlphaType> at)
61 std::unique_ptr<SkStream> stream = fCodec->getEncodedData();
62 fCachedData = stream->getData();
91 return this->
getPixels(requestInfo, requestPixels, requestRowBytes,
nullptr);
97 return fCodec->queryYUVAInfo(supportedDataTypes, yuvaPixmapInfo);
101 switch (fCodec->getYUVAPlanes(yuvaPixmaps)) {
112 SkISize size = fCodec->getScaledDimensions(desiredScale);
114 std::swap(size.fWidth, size.fHeight);
static void info(const char *fmt,...) SK_PRINTF_LIKE(1
@ kOpaque_SkAlphaType
pixel is opaque
@ kPremul_SkAlphaType
pixel components are premultiplied by alpha
static SkImageInfo adjust_info(SkCodec *codec, std::optional< SkAlphaType > at)
static bool SkEncodedOriginSwapsWidthHeight(SkEncodedOrigin origin)
SkISize getScaledDimensions(float desiredScale) const
bool onGetYUVAPlanes(const SkYUVAPixmaps &yuvaPixmaps) override
bool onQueryYUVAInfo(const SkYUVAPixmapInfo::SupportedDataTypes &, SkYUVAPixmapInfo *) const override
static std::unique_ptr< SkImageGenerator > MakeFromEncodedCodec(sk_sp< SkData >, std::optional< SkAlphaType >=std::nullopt)
sk_sp< SkData > onRefEncodedData() override
bool getPixels(const SkImageInfo &info, void *pixels, size_t rowBytes, const SkCodec::Options *options=nullptr)
bool onGetPixels(const SkImageInfo &info, void *pixels, size_t rowBytes, const Options &opts) override
static std::unique_ptr< SkImageGenerator > MakeFromCodec(std::unique_ptr< SkCodec >, std::optional< SkAlphaType >=std::nullopt)
static std::unique_ptr< SkCodec > MakeFromData(sk_sp< SkData >, SkSpan< const SkCodecs::Decoder > decoders, SkPngChunkReader *=nullptr)
SkEncodedOrigin getOrigin() const
SkImageInfo getInfo() const
static sk_sp< SkData > MakeFromStream(SkStream *, size_t size)
SK_API bool Orient(const SkPixmap &dst, const SkPixmap &src, SkEncodedOrigin origin)
SK_API SkImageInfo SwapWidthHeight(const SkImageInfo &info)
const myers::Point & get(const myers::Segment &)
static DecodeResult decode(std::string path)
SkImageInfo makeAlphaType(SkAlphaType newAlphaType) const