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

Side by Side Diff: src/core/SkBitmap.cpp

Issue 305483005: remove SkBitmap::asImageInfo (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: Created 6 years, 7 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 | « include/core/SkBitmap.h ('k') | src/core/SkBitmapDevice.cpp » ('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 2008 The Android Open Source Project 3 * Copyright 2008 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 #include "SkBitmap.h" 10 #include "SkBitmap.h"
(...skipping 292 matching lines...) Expand 10 before | Expand all | Expand 10 after
303 } 303 }
304 if (ctOut) { 304 if (ctOut) {
305 *ctOut = ct; 305 *ctOut = ct;
306 } 306 }
307 return true; 307 return true;
308 } 308 }
309 309
310 SkPixelRef* SkBitmap::setPixelRef(SkPixelRef* pr, int dx, int dy) { 310 SkPixelRef* SkBitmap::setPixelRef(SkPixelRef* pr, int dx, int dy) {
311 #ifdef SK_DEBUG 311 #ifdef SK_DEBUG
312 if (pr) { 312 if (pr) {
313 SkImageInfo info; 313 if (kUnknown_SkColorType != fInfo.colorType()) {
314 if (this->asImageInfo(&info)) {
315 const SkImageInfo& prInfo = pr->info(); 314 const SkImageInfo& prInfo = pr->info();
316 SkASSERT(info.fWidth <= prInfo.fWidth); 315 SkASSERT(fInfo.fWidth <= prInfo.fWidth);
317 SkASSERT(info.fHeight <= prInfo.fHeight); 316 SkASSERT(fInfo.fHeight <= prInfo.fHeight);
318 SkASSERT(info.fColorType == prInfo.fColorType); 317 SkASSERT(fInfo.fColorType == prInfo.fColorType);
319 switch (prInfo.fAlphaType) { 318 switch (prInfo.fAlphaType) {
320 case kIgnore_SkAlphaType: 319 case kIgnore_SkAlphaType:
321 SkASSERT(fInfo.fAlphaType == kIgnore_SkAlphaType); 320 SkASSERT(fInfo.fAlphaType == kIgnore_SkAlphaType);
322 break; 321 break;
323 case kOpaque_SkAlphaType: 322 case kOpaque_SkAlphaType:
324 case kPremul_SkAlphaType: 323 case kPremul_SkAlphaType:
325 SkASSERT(info.fAlphaType == kOpaque_SkAlphaType || 324 SkASSERT(fInfo.fAlphaType == kOpaque_SkAlphaType ||
326 info.fAlphaType == kPremul_SkAlphaType); 325 fInfo.fAlphaType == kPremul_SkAlphaType);
327 break; 326 break;
328 case kUnpremul_SkAlphaType: 327 case kUnpremul_SkAlphaType:
329 SkASSERT(info.fAlphaType == kOpaque_SkAlphaType || 328 SkASSERT(fInfo.fAlphaType == kOpaque_SkAlphaType ||
330 info.fAlphaType == kUnpremul_SkAlphaType); 329 fInfo.fAlphaType == kUnpremul_SkAlphaType);
331 break; 330 break;
332 } 331 }
333 } 332 }
334 } 333 }
335 #endif 334 #endif
336 335
337 if (pr) { 336 if (pr) {
338 const SkImageInfo& info = pr->info(); 337 const SkImageInfo& info = pr->info();
339 fPixelRefOrigin.set(SkPin32(dx, 0, info.fWidth), 338 fPixelRefOrigin.set(SkPin32(dx, 0, info.fWidth),
340 SkPin32(dy, 0, info.fHeight)); 339 SkPin32(dy, 0, info.fHeight));
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
379 bool SkBitmap::lockPixelsAreWritable() const { 378 bool SkBitmap::lockPixelsAreWritable() const {
380 return (fPixelRef) ? fPixelRef->lockPixelsAreWritable() : false; 379 return (fPixelRef) ? fPixelRef->lockPixelsAreWritable() : false;
381 } 380 }
382 381
383 void SkBitmap::setPixels(void* p, SkColorTable* ctable) { 382 void SkBitmap::setPixels(void* p, SkColorTable* ctable) {
384 if (NULL == p) { 383 if (NULL == p) {
385 this->setPixelRef(NULL); 384 this->setPixelRef(NULL);
386 return; 385 return;
387 } 386 }
388 387
389 SkImageInfo info; 388 if (kUnknown_SkColorType == fInfo.colorType()) {
390 if (!this->asImageInfo(&info)) {
391 this->setPixelRef(NULL); 389 this->setPixelRef(NULL);
392 return; 390 return;
393 } 391 }
394 392
395 SkPixelRef* pr = SkMallocPixelRef::NewDirect(info, p, fRowBytes, ctable); 393 SkPixelRef* pr = SkMallocPixelRef::NewDirect(fInfo, p, fRowBytes, ctable);
396 if (NULL == pr) { 394 if (NULL == pr) {
397 this->setPixelRef(NULL); 395 this->setPixelRef(NULL);
398 return; 396 return;
399 } 397 }
400 398
401 this->setPixelRef(pr)->unref(); 399 this->setPixelRef(pr)->unref();
402 400
403 // since we're already allocated, we lockPixels right away 401 // since we're already allocated, we lockPixels right away
404 this->lockPixels(); 402 this->lockPixels();
405 SkDEBUGCODE(this->validate();) 403 SkDEBUGCODE(this->validate();)
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
519 return fPixelRef ? fPixelRef->getTexture() : NULL; 517 return fPixelRef ? fPixelRef->getTexture() : NULL;
520 } 518 }
521 519
522 /////////////////////////////////////////////////////////////////////////////// 520 ///////////////////////////////////////////////////////////////////////////////
523 521
524 /** We explicitly use the same allocator for our pixels that SkMask does, 522 /** We explicitly use the same allocator for our pixels that SkMask does,
525 so that we can freely assign memory allocated by one class to the other. 523 so that we can freely assign memory allocated by one class to the other.
526 */ 524 */
527 bool SkBitmap::HeapAllocator::allocPixelRef(SkBitmap* dst, 525 bool SkBitmap::HeapAllocator::allocPixelRef(SkBitmap* dst,
528 SkColorTable* ctable) { 526 SkColorTable* ctable) {
529 SkImageInfo info; 527 const SkImageInfo info = dst->info();
530 if (!dst->asImageInfo(&info)) { 528 if (kUnknown_SkColorType == info.colorType()) {
531 // SkDebugf("unsupported config for info %d\n", dst->config()); 529 // SkDebugf("unsupported config for info %d\n", dst->config());
532 return false; 530 return false;
533 } 531 }
534 532
535 SkPixelRef* pr = SkMallocPixelRef::NewAllocate(info, dst->rowBytes(), 533 SkPixelRef* pr = SkMallocPixelRef::NewAllocate(info, dst->rowBytes(), ctable );
536 ctable);
537 if (NULL == pr) { 534 if (NULL == pr) {
538 return false; 535 return false;
539 } 536 }
540 537
541 dst->setPixelRef(pr)->unref(); 538 dst->setPixelRef(pr)->unref();
542 // since we're already allocated, we lockPixels right away 539 // since we're already allocated, we lockPixels right away
543 dst->lockPixels(); 540 dst->lockPixels();
544 return true; 541 return true;
545 } 542 }
546 543
(...skipping 933 matching lines...) Expand 10 before | Expand all | Expand 10 after
1480 /////////////////////////////////////////////////////////////////////////////// 1477 ///////////////////////////////////////////////////////////////////////////////
1481 1478
1482 #ifdef SK_DEBUG 1479 #ifdef SK_DEBUG
1483 void SkImageInfo::validate() const { 1480 void SkImageInfo::validate() const {
1484 SkASSERT(fWidth >= 0); 1481 SkASSERT(fWidth >= 0);
1485 SkASSERT(fHeight >= 0); 1482 SkASSERT(fHeight >= 0);
1486 SkASSERT(SkColorTypeIsValid(fColorType)); 1483 SkASSERT(SkColorTypeIsValid(fColorType));
1487 SkASSERT(SkAlphaTypeIsValid(fAlphaType)); 1484 SkASSERT(SkAlphaTypeIsValid(fAlphaType));
1488 } 1485 }
1489 #endif 1486 #endif
OLDNEW
« no previous file with comments | « include/core/SkBitmap.h ('k') | src/core/SkBitmapDevice.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698