bool SkPicture::InternalOnly_BufferIsSKP(SkReadBuffer& buffer, SkPictInfo* pInfo) { // Check magic bytes. SkPictInfo info; SkASSERT(sizeof(kMagic) == sizeof(info.fMagic)); if (!buffer.readByteArray(&info, sizeof(info)) || !IsValidPictInfo(info)) { return false; } if (pInfo != NULL) { *pInfo = info; } return true; }
bool SkPicture::InternalOnly_BufferIsSKP(SkReadBuffer* buffer, SkPictInfo* pInfo) { SkPictInfo info; SkASSERT(sizeof(kMagic) == sizeof(info.fMagic)); if (!buffer->readByteArray(&info.fMagic, sizeof(kMagic))) { return false; } info.fVersion = buffer->readUInt(); buffer->readRect(&info.fCullRect); info.fFlags = buffer->readUInt(); if (IsValidPictInfo(info)) { if (pInfo) { *pInfo = info; } return true; } return false; }
bool SkPicture::InternalOnly_StreamIsSKP(SkStream* stream, SkPictInfo* pInfo) { if (NULL == stream) { return false; } // Check magic bytes. SkPictInfo info; SkASSERT(sizeof(kMagic) == sizeof(info.fMagic)); if (!stream->read(&info, sizeof(info)) || !IsValidPictInfo(info)) { return false; } if (pInfo != NULL) { *pInfo = info; } return true; }
bool SkPicture::InternalOnly_StreamIsSKP(SkStream* stream, SkPictInfo* pInfo) { if (!stream) { return false; } SkPictInfo info; SkASSERT(sizeof(kMagic) == sizeof(info.fMagic)); if (!stream->read(&info.fMagic, sizeof(kMagic))) { return false; } info.fVersion = stream->readU32(); info.fCullRect.fLeft = stream->readScalar(); info.fCullRect.fTop = stream->readScalar(); info.fCullRect.fRight = stream->readScalar(); info.fCullRect.fBottom = stream->readScalar(); info.fFlags = stream->readU32(); if (IsValidPictInfo(info)) { if (pInfo) { *pInfo = info; } return true; } return false; }