/* * Copyright 2015 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file.
*/ #ifndef SkIcoCodec_DEFINED #define SkIcoCodec_DEFINED
class SkSampler; class SkStream; struct SkEncodedInfo; struct SkImageInfo;
/* * This class implements the decoding for bmp images
*/ class SkIcoCodec : public SkCodec { public: staticbool IsIco(constvoid*, size_t);
/* * Assumes IsIco was called and returned true * Creates an Ico decoder * Reads enough of the stream to determine the image format
*/ static std::unique_ptr<SkCodec> MakeFromStream(std::unique_ptr<SkStream>, Result*);
protected:
/* * Chooses the best dimensions given the desired scale
*/
SkISize onGetScaledDimensions(float desiredScale) const override;
/* * Searches fEmbeddedCodecs for a codec that matches requestedSize. * The search starts at startIndex and ends when an appropriate codec * is found, or we have reached the end of the array. * * @return the index of the matching codec or -1 if there is no * matching codec between startIndex and the end of * the array.
*/ int chooseCodec(const SkISize& requestedSize, int startIndex);
/* * Constructor called by NewFromStream * @param embeddedCodecs codecs for the embedded images, takes ownership
*/
SkIcoCodec(SkEncodedInfo&& info,
std::unique_ptr<SkStream>,
std::unique_ptr<skia_private::TArray<std::unique_ptr<SkCodec>>> embeddedCodecs);
// fCurrCodec is owned by this class, but should not be an // std::unique_ptr. It will be deleted by the destructor of fEmbeddedCodecs.
SkCodec* fCurrCodec;
using INHERITED = SkCodec;
}; #endif// SkIcoCodec_DEFINED
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.