のねのBlog

パソコンの問題や、ソフトウェアの開発で起きた問題など書いていきます。よろしくお願いします^^。

SkPicture

    194 SkPicture::SkPicture(SkStream* stream) : SkRefCnt() {
    195     const uint32_t  pictureVersion = stream->readU32();
    196     if (pictureVersion != PICTURE_VERSION_ICS &&
    197         pictureVersion != PICTURE_VERSION_JB) {
    198         sk_throw();
    199     }
    200 
    201     fWidth = stream->readU32();
    202     fHeight = stream->readU32();
    203 
    204     fRecord = NULL;
    205     fPlayback = NULL;
    206 
    207     if (stream->readBool()) {
    208         fPlayback = SkNEW_ARGS(SkPicturePlayback, (stream, pictureVersion));
    209     }
    210 }
    395 SkPicturePlayback::SkPicturePlayback(SkStream* stream, uint32_t pictureVersion) {
    396     this->init();
    397 
    398     int i;
    399 
    400     {
    401         size_t size = readTagSize(stream, PICT_READER_TAG);
    402         void* storage = sk_malloc_throw(size);
    403         stream->read(storage, size);
    404         fReader.setMemory(storage, size);
    405         fReader.setPictureVersion(pictureVersion);
    406     }
    407 
    408     int factoryCount = readTagSize(stream, PICT_FACTORY_TAG);
    409     fFactoryPlayback = SkNEW_ARGS(SkFactoryPlayback, (factoryCount));
    410     for (i = 0; i < factoryCount; i++) {
    411         SkString str;
    412         int len = stream->readPackedUInt();
    413         str.resize(len);
    414         stream->read(str.writable_str(), len);
    415 //        SkDebugf("--- factory playback [%d] <%s>\n", i, str.c_str());
    416         fFactoryPlayback->base()[i] = SkFlattenable::NameToFactory(str.c_str());
    417     }