OLD | NEW |
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 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
46 * 1-bit per pixel, (0 is transparent, 1 is opaque) | 46 * 1-bit per pixel, (0 is transparent, 1 is opaque) |
47 * Valid as a destination (target of a canvas), but not valid as a src. | 47 * Valid as a destination (target of a canvas), but not valid as a src. |
48 * i.e. you can draw into a 1-bit bitmap, but you cannot draw from one. | 48 * i.e. you can draw into a 1-bit bitmap, but you cannot draw from one. |
49 */ | 49 */ |
50 kA1_Config, | 50 kA1_Config, |
51 kA8_Config, //!< 8-bits per pixel, with only alpha specified (0
is transparent, 0xFF is opaque) | 51 kA8_Config, //!< 8-bits per pixel, with only alpha specified (0
is transparent, 0xFF is opaque) |
52 kIndex8_Config, //!< 8-bits per pixel, using SkColorTable to specify
the colors | 52 kIndex8_Config, //!< 8-bits per pixel, using SkColorTable to specify
the colors |
53 kRGB_565_Config, //!< 16-bits per pixel, (see SkColorPriv.h for packi
ng) | 53 kRGB_565_Config, //!< 16-bits per pixel, (see SkColorPriv.h for packi
ng) |
54 kARGB_4444_Config, //!< 16-bits per pixel, (see SkColorPriv.h for packi
ng) | 54 kARGB_4444_Config, //!< 16-bits per pixel, (see SkColorPriv.h for packi
ng) |
55 kARGB_8888_Config, //!< 32-bits per pixel, (see SkColorPriv.h for packi
ng) | 55 kARGB_8888_Config, //!< 32-bits per pixel, (see SkColorPriv.h for packi
ng) |
56 /** | |
57 * Custom compressed format, not supported on all platforms. | |
58 * Cannot be used as a destination (target of a canvas). | |
59 * i.e. you may be able to draw from one, but you cannot draw into one. | |
60 */ | |
61 kRLE_Index8_Config, | |
62 }; | 56 }; |
63 | 57 |
64 // do not add this to the Config enum, otherwise the compiler will let us | 58 // do not add this to the Config enum, otherwise the compiler will let us |
65 // pass this as a valid parameter for Config. | 59 // pass this as a valid parameter for Config. |
66 enum { | 60 enum { |
67 kConfigCount = kRLE_Index8_Config + 1 | 61 kConfigCount = kARGB_8888_Config + 1 |
68 }; | 62 }; |
69 | 63 |
70 /** | 64 /** |
71 * Default construct creates a bitmap with zero width and height, and no pi
xels. | 65 * Default construct creates a bitmap with zero width and height, and no pi
xels. |
72 * Its config is set to kNo_Config. | 66 * Its config is set to kNo_Config. |
73 */ | 67 */ |
74 SkBitmap(); | 68 SkBitmap(); |
75 | 69 |
76 /** | 70 /** |
77 * Copy the settings from the src into this bitmap. If the src has pixels | 71 * Copy the settings from the src into this bitmap. If the src has pixels |
(...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
359 * modifications will be lost when unlockPixels() is called.) | 353 * modifications will be lost when unlockPixels() is called.) |
360 */ | 354 */ |
361 bool lockPixelsAreWritable() const; | 355 bool lockPixelsAreWritable() const; |
362 | 356 |
363 /** Call this to be sure that the bitmap is valid enough to be drawn (i.e. | 357 /** Call this to be sure that the bitmap is valid enough to be drawn (i.e. |
364 it has non-null pixels, and if required by its config, it has a | 358 it has non-null pixels, and if required by its config, it has a |
365 non-null colortable. Returns true if all of the above are met. | 359 non-null colortable. Returns true if all of the above are met. |
366 */ | 360 */ |
367 bool readyToDraw() const { | 361 bool readyToDraw() const { |
368 return this->getPixels() != NULL && | 362 return this->getPixels() != NULL && |
369 ((this->config() != kIndex8_Config && | 363 (this->config() != kIndex8_Config || NULL != fColorTable); |
370 this->config() != kRLE_Index8_Config) || | |
371 fColorTable != NULL); | |
372 } | 364 } |
373 | 365 |
374 /** Returns the pixelRef's texture, or NULL | 366 /** Returns the pixelRef's texture, or NULL |
375 */ | 367 */ |
376 SkGpuTexture* getTexture() const; | 368 SkGpuTexture* getTexture() const; |
377 | 369 |
378 /** Return the bitmap's colortable, if it uses one (i.e. fConfig is | 370 /** Return the bitmap's colortable, if it uses one (i.e. fConfig is |
379 kIndex8_Config or kRLE_Index8_Config) and the pixels are locked. | 371 kIndex8_Config) and the pixels are locked. |
380 Otherwise returns NULL. Does not affect the colortable's | 372 Otherwise returns NULL. Does not affect the colortable's |
381 reference count. | 373 reference count. |
382 */ | 374 */ |
383 SkColorTable* getColorTable() const { return fColorTable; } | 375 SkColorTable* getColorTable() const { return fColorTable; } |
384 | 376 |
385 /** Returns a non-zero, unique value corresponding to the pixels in our | 377 /** Returns a non-zero, unique value corresponding to the pixels in our |
386 pixelref. Each time the pixels are changed (and notifyPixelsChanged | 378 pixelref. Each time the pixels are changed (and notifyPixelsChanged |
387 is called), a different generation ID will be returned. Finally, if | 379 is called), a different generation ID will be returned. Finally, if |
388 their is no pixelRef then zero is returned. | 380 their is no pixelRef then zero is returned. |
389 */ | 381 */ |
(...skipping 413 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
803 | 795 |
804 // returns the address of the byte that contains the x coordinate | 796 // returns the address of the byte that contains the x coordinate |
805 inline uint8_t* SkBitmap::getAddr1(int x, int y) const { | 797 inline uint8_t* SkBitmap::getAddr1(int x, int y) const { |
806 SkASSERT(fPixels); | 798 SkASSERT(fPixels); |
807 SkASSERT(fConfig == kA1_Config); | 799 SkASSERT(fConfig == kA1_Config); |
808 SkASSERT((unsigned)x < fWidth && (unsigned)y < fHeight); | 800 SkASSERT((unsigned)x < fWidth && (unsigned)y < fHeight); |
809 return (uint8_t*)fPixels + y * fRowBytes + (x >> 3); | 801 return (uint8_t*)fPixels + y * fRowBytes + (x >> 3); |
810 } | 802 } |
811 | 803 |
812 #endif | 804 #endif |
OLD | NEW |