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

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

Issue 12699002: Upstream changes from Android. (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: more fiex Created 7 years, 9 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
« no previous file with comments | « no previous file | include/core/SkPaint.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 1
2 /* 2 /*
3 * Copyright 2006 The Android Open Source Project 3 * Copyright 2006 The Android Open Source Project
4 * 4 *
5 * Use of this source code is governed by a BSD-style license that can be 5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file. 6 * found in the LICENSE file.
7 */ 7 */
8 8
9 9
10 #ifndef SkBitmap_DEFINED 10 #ifndef SkBitmap_DEFINED
(...skipping 524 matching lines...) Expand 10 before | Expand all | Expand 10 after
535 bool hasMipMap() const; 535 bool hasMipMap() const;
536 void buildMipMap(bool forceRebuild = false); 536 void buildMipMap(bool forceRebuild = false);
537 void freeMipMap(); 537 void freeMipMap();
538 538
539 /** Given scale factors sx, sy, determine the miplevel available in the 539 /** Given scale factors sx, sy, determine the miplevel available in the
540 bitmap, and return it (this is the amount to shift matrix iterators 540 bitmap, and return it (this is the amount to shift matrix iterators
541 by). If dst is not null, it is set to the correct level. 541 by). If dst is not null, it is set to the correct level.
542 */ 542 */
543 int extractMipLevel(SkBitmap* dst, SkFixed sx, SkFixed sy); 543 int extractMipLevel(SkBitmap* dst, SkFixed sx, SkFixed sy);
544 544
545 #ifdef SK_BUILD_FOR_ANDROID
546 bool hasHardwareMipMap() const {
547 return (fFlags & kHasHardwareMipMap_Flag) != 0;
548 }
549
550 void setHasHardwareMipMap(bool hasHardwareMipMap) {
551 if (hasHardwareMipMap) {
552 fFlags |= kHasHardwareMipMap_Flag;
553 } else {
554 fFlags &= ~kHasHardwareMipMap_Flag;
555 }
556 }
557 #endif
558
545 bool extractAlpha(SkBitmap* dst) const { 559 bool extractAlpha(SkBitmap* dst) const {
546 return this->extractAlpha(dst, NULL, NULL, NULL); 560 return this->extractAlpha(dst, NULL, NULL, NULL);
547 } 561 }
548 562
549 bool extractAlpha(SkBitmap* dst, const SkPaint* paint, 563 bool extractAlpha(SkBitmap* dst, const SkPaint* paint,
550 SkIPoint* offset) const { 564 SkIPoint* offset) const {
551 return this->extractAlpha(dst, paint, NULL, offset); 565 return this->extractAlpha(dst, paint, NULL, offset);
552 } 566 }
553 567
554 /** Set dst to contain alpha layer of this bitmap. If destination bitmap 568 /** Set dst to contain alpha layer of this bitmap. If destination bitmap
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
635 mutable size_t fPixelRefOffset; 649 mutable size_t fPixelRefOffset;
636 mutable int fPixelLockCount; 650 mutable int fPixelLockCount;
637 // either user-specified (in which case it is not treated as mutable) 651 // either user-specified (in which case it is not treated as mutable)
638 // or a cache of the returned value from fPixelRef->lockPixels() 652 // or a cache of the returned value from fPixelRef->lockPixels()
639 mutable void* fPixels; 653 mutable void* fPixels;
640 mutable SkColorTable* fColorTable; // only meaningful for kIndex8 654 mutable SkColorTable* fColorTable; // only meaningful for kIndex8
641 655
642 enum Flags { 656 enum Flags {
643 kImageIsOpaque_Flag = 0x01, 657 kImageIsOpaque_Flag = 0x01,
644 kImageIsVolatile_Flag = 0x02, 658 kImageIsVolatile_Flag = 0x02,
645 kImageIsImmutable_Flag = 0x04 659 kImageIsImmutable_Flag = 0x04,
660 #ifdef SK_BUILD_FOR_ANDROID
661 /* A hint for the renderer responsible for drawing this bitmap
662 * indicating that it should attempt to use mipmaps when this bitmap
663 * is drawn scaled down.
664 */
665 kHasHardwareMipMap_Flag = 0x08,
666 #endif
646 }; 667 };
647 668
648 uint32_t fRowBytes; 669 uint32_t fRowBytes;
649 uint32_t fWidth; 670 uint32_t fWidth;
650 uint32_t fHeight; 671 uint32_t fHeight;
651 uint8_t fConfig; 672 uint8_t fConfig;
652 uint8_t fFlags; 673 uint8_t fFlags;
653 uint8_t fBytesPerPixel; // based on config 674 uint8_t fBytesPerPixel; // based on config
654 675
655 /* Internal computations for safe size. 676 /* Internal computations for safe size.
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
776 797
777 // returns the address of the byte that contains the x coordinate 798 // returns the address of the byte that contains the x coordinate
778 inline uint8_t* SkBitmap::getAddr1(int x, int y) const { 799 inline uint8_t* SkBitmap::getAddr1(int x, int y) const {
779 SkASSERT(fPixels); 800 SkASSERT(fPixels);
780 SkASSERT(fConfig == kA1_Config); 801 SkASSERT(fConfig == kA1_Config);
781 SkASSERT((unsigned)x < fWidth && (unsigned)y < fHeight); 802 SkASSERT((unsigned)x < fWidth && (unsigned)y < fHeight);
782 return (uint8_t*)fPixels + y * fRowBytes + (x >> 3); 803 return (uint8_t*)fPixels + y * fRowBytes + (x >> 3);
783 } 804 }
784 805
785 #endif 806 #endif
OLDNEW
« no previous file with comments | « no previous file | include/core/SkPaint.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698