class MockDiscardablePixelRef : public SkPixelRef {
public:
- MockDiscardablePixelRef(const SkImageInfo& info)
+ MockDiscardablePixelRef(const SkImageInfo& info, size_t rowbytes)
: SkPixelRef(info)
+ , m_rowBytes(rowbytes)
, discarded(false)
{
setURI("discardable");
if (!dst->asImageInfo(&info)) {
return false;
}
- SkAutoTUnref<SkPixelRef> pr(new MockDiscardablePixelRef(info));
+ SkAutoTUnref<SkPixelRef> pr(new MockDiscardablePixelRef(info, dst->rowBytes()));
dst->setPixelRef(pr);
return true;
}
SK_DECLARE_UNFLATTENABLE_OBJECT()
protected:
- // SkPixelRef implementation.
-#ifdef SK_SUPPORT_LEGACY_ONLOCKPIXELS
- virtual void* onLockPixels(SkColorTable**)
- {
- if (discarded)
- return 0;
- m_lockedMemory = &discarded;
- return m_lockedMemory;
- }
-#endif
-
virtual bool onNewLockPixels(LockRec* rec)
{
if (discarded)
m_lockedMemory = &discarded;
rec->fPixels = m_lockedMemory;
rec->fColorTable = 0;
- rec->fRowBytes = 1;
+ rec->fRowBytes = m_rowBytes;
return true;
}
private:
void* m_lockedMemory;
+ size_t m_rowBytes;
bool discarded;
};