Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1313)

Side by Side Diff: include/core/SkBitmap.h

Issue 105893012: change offset to xy for pixelref subsetting (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright 2006 The Android Open Source Project 2 * Copyright 2006 The Android Open Source Project
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #ifndef SkBitmap_DEFINED 8 #ifndef SkBitmap_DEFINED
9 #define SkBitmap_DEFINED 9 #define SkBitmap_DEFINED
10 10
(...skipping 335 matching lines...) Expand 10 before | Expand all | Expand 10 after
346 the bitmap will be unchanged. 346 the bitmap will be unchanged.
347 */ 347 */
348 bool allocPixels(Allocator* allocator, SkColorTable* ctable); 348 bool allocPixels(Allocator* allocator, SkColorTable* ctable);
349 349
350 /** Return the current pixelref object, if any 350 /** Return the current pixelref object, if any
351 */ 351 */
352 SkPixelRef* pixelRef() const { return fPixelRef; } 352 SkPixelRef* pixelRef() const { return fPixelRef; }
353 /** Return the offset into the pixelref, if any. Will return 0 if there is 353 /** Return the offset into the pixelref, if any. Will return 0 if there is
354 no pixelref installed. 354 no pixelref installed.
355 */ 355 */
356 size_t pixelRefOffset() const { return fPixelRefOffset; } 356 // size_t pixelRefOffset() const { return fPixelRefOffset; }
scroggo 2014/01/07 22:11:33 Any reason not to delete this outright?
reed1 2014/01/07 22:37:59 Done.
357
358 SkIPoint pixelRefOrigin() const { return fPixelRefOrigin; }
359
357 /** Assign a pixelref and optional offset. Pixelrefs are reference counted, 360 /** Assign a pixelref and optional offset. Pixelrefs are reference counted,
358 so the existing one (if any) will be unref'd and the new one will be 361 so the existing one (if any) will be unref'd and the new one will be
359 ref'd. 362 ref'd.
360 */ 363 */
361 SkPixelRef* setPixelRef(SkPixelRef* pr, size_t offset = 0); 364 SkPixelRef* setPixelRef(SkPixelRef* pr, int dx, int dy);
365 SkPixelRef* setPixelRef(SkPixelRef* pr) {
366 return this->setPixelRef(pr, 0, 0);
367 }
368 SkPixelRef* setPixelRef(SkPixelRef* pr, const SkIPoint& origin) {
369 return this->setPixelRef(pr, origin.fX, origin.fY);
370 }
362 371
363 /** Call this to ensure that the bitmap points to the current pixel address 372 /** Call this to ensure that the bitmap points to the current pixel address
364 in the pixelref. Balance it with a call to unlockPixels(). These calls 373 in the pixelref. Balance it with a call to unlockPixels(). These calls
365 are harmless if there is no pixelref. 374 are harmless if there is no pixelref.
366 */ 375 */
367 void lockPixels() const; 376 void lockPixels() const;
368 /** When you are finished access the pixel memory, call this to balance a 377 /** When you are finished access the pixel memory, call this to balance a
369 previous call to lockPixels(). This allows pixelrefs that implement 378 previous call to lockPixels(). This allows pixelrefs that implement
370 cached/deferred image decoding to know when there are active clients of 379 cached/deferred image decoding to know when there are active clients of
371 a given image. 380 a given image.
(...skipping 286 matching lines...) Expand 10 before | Expand all | Expand 10 after
658 int fHeight; 667 int fHeight;
659 }; 668 };
660 669
661 SkDEVCODE(void toString(SkString* str) const;) 670 SkDEVCODE(void toString(SkString* str) const;)
662 671
663 private: 672 private:
664 struct MipMap; 673 struct MipMap;
665 mutable MipMap* fMipMap; 674 mutable MipMap* fMipMap;
666 675
667 mutable SkPixelRef* fPixelRef; 676 mutable SkPixelRef* fPixelRef;
668 mutable size_t fPixelRefOffset;
669 mutable int fPixelLockCount; 677 mutable int fPixelLockCount;
670 // either user-specified (in which case it is not treated as mutable) 678 // either user-specified (in which case it is not treated as mutable)
671 // or a cache of the returned value from fPixelRef->lockPixels() 679 // or a cache of the returned value from fPixelRef->lockPixels()
672 mutable void* fPixels; 680 mutable void* fPixels;
673 mutable SkColorTable* fColorTable; // only meaningful for kIndex8 681 mutable SkColorTable* fColorTable; // only meaningful for kIndex8
674 682
683 SkIPoint fPixelRefOrigin;
scroggo 2014/01/07 22:11:33 Why was the old one mutable, and this one not? (My
684
675 enum Flags { 685 enum Flags {
676 kImageIsOpaque_Flag = 0x01, 686 kImageIsOpaque_Flag = 0x01,
677 kImageIsVolatile_Flag = 0x02, 687 kImageIsVolatile_Flag = 0x02,
678 kImageIsImmutable_Flag = 0x04, 688 kImageIsImmutable_Flag = 0x04,
679 #ifdef SK_BUILD_FOR_ANDROID 689 #ifdef SK_BUILD_FOR_ANDROID
680 /* A hint for the renderer responsible for drawing this bitmap 690 /* A hint for the renderer responsible for drawing this bitmap
681 * indicating that it should attempt to use mipmaps when this bitmap 691 * indicating that it should attempt to use mipmaps when this bitmap
682 * is drawn scaled down. 692 * is drawn scaled down.
683 */ 693 */
684 kHasHardwareMipMap_Flag = 0x08, 694 kHasHardwareMipMap_Flag = 0x08,
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
824 834
825 inline SkPMColor SkBitmap::getIndex8Color(int x, int y) const { 835 inline SkPMColor SkBitmap::getIndex8Color(int x, int y) const {
826 SkASSERT(fPixels); 836 SkASSERT(fPixels);
827 SkASSERT(fConfig == kIndex8_Config); 837 SkASSERT(fConfig == kIndex8_Config);
828 SkASSERT((unsigned)x < fWidth && (unsigned)y < fHeight); 838 SkASSERT((unsigned)x < fWidth && (unsigned)y < fHeight);
829 SkASSERT(fColorTable); 839 SkASSERT(fColorTable);
830 return (*fColorTable)[*((const uint8_t*)fPixels + y * fRowBytes + x)]; 840 return (*fColorTable)[*((const uint8_t*)fPixels + y * fRowBytes + x)];
831 } 841 }
832 842
833 #endif 843 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698