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

Side by Side Diff: Source/core/html/canvas/WebGLFramebuffer.cpp

Issue 656723005: Use C++11 features in core/html (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Use meaningful names Created 6 years, 2 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2009 Apple Inc. All rights reserved. 2 * Copyright (C) 2009 Apple Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 447 matching lines...) Expand 10 before | Expand all | Expand 10 after
458 { 458 {
459 ASSERT(isBound()); 459 ASSERT(isBound());
460 if (!object()) 460 if (!object())
461 return; 461 return;
462 if (!attachment) 462 if (!attachment)
463 return; 463 return;
464 464
465 bool checkMore = true; 465 bool checkMore = true;
466 while (checkMore) { 466 while (checkMore) {
467 checkMore = false; 467 checkMore = false;
468 for (AttachmentMap::iterator it = m_attachments.begin(); it != m_attachm ents.end(); ++it) { 468 for (const auto& it : m_attachments) {
469 WebGLAttachment* attachmentObject = it->value.get(); 469 WebGLAttachment* attachmentObject = it.value.get();
470 if (attachmentObject->isSharedObject(attachment)) { 470 if (attachmentObject->isSharedObject(attachment)) {
471 GLenum attachmentType = it->key; 471 GLenum attachmentType = it.key;
472 attachmentObject->unattach(context()->webContext(), attachmentTy pe); 472 attachmentObject->unattach(context()->webContext(), attachmentTy pe);
473 removeAttachmentFromBoundFramebuffer(attachmentType); 473 removeAttachmentFromBoundFramebuffer(attachmentType);
474 checkMore = true; 474 checkMore = true;
475 break; 475 break;
476 } 476 }
477 } 477 }
478 } 478 }
479 } 479 }
480 480
481 GLenum WebGLFramebuffer::colorBufferFormat() const 481 GLenum WebGLFramebuffer::colorBufferFormat() const
482 { 482 {
483 if (!object()) 483 if (!object())
484 return 0; 484 return 0;
485 WebGLAttachment* attachment = getAttachment(GL_COLOR_ATTACHMENT0); 485 WebGLAttachment* attachment = getAttachment(GL_COLOR_ATTACHMENT0);
486 if (!attachment) 486 if (!attachment)
487 return 0; 487 return 0;
488 return attachment->format(); 488 return attachment->format();
489 } 489 }
490 490
491 GLenum WebGLFramebuffer::checkStatus(const char** reason) const 491 GLenum WebGLFramebuffer::checkStatus(const char** reason) const
492 { 492 {
493 unsigned count = 0; 493 unsigned count = 0;
494 GLsizei width = 0, height = 0; 494 GLsizei width = 0, height = 0;
495 bool haveDepth = false; 495 bool haveDepth = false;
496 bool haveStencil = false; 496 bool haveStencil = false;
497 bool haveDepthStencil = false; 497 bool haveDepthStencil = false;
498 for (AttachmentMap::const_iterator it = m_attachments.begin(); it != m_attac hments.end(); ++it) { 498 for (const auto& it : m_attachments) {
499 WebGLAttachment* attachment = it->value.get(); 499 WebGLAttachment* attachment = it.value.get();
500 if (!isAttachmentComplete(attachment, it->key, reason)) 500 if (!isAttachmentComplete(attachment, it.key, reason))
501 return GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT; 501 return GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT;
502 if (!attachment->valid()) { 502 if (!attachment->valid()) {
503 *reason = "attachment is not valid"; 503 *reason = "attachment is not valid";
504 return GL_FRAMEBUFFER_UNSUPPORTED; 504 return GL_FRAMEBUFFER_UNSUPPORTED;
505 } 505 }
506 if (!attachment->format()) { 506 if (!attachment->format()) {
507 *reason = "attachment is an unsupported format"; 507 *reason = "attachment is an unsupported format";
508 return GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT; 508 return GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT;
509 } 509 }
510 switch (it->key) { 510 switch (it.key) {
511 case GL_DEPTH_ATTACHMENT: 511 case GL_DEPTH_ATTACHMENT:
512 haveDepth = true; 512 haveDepth = true;
513 break; 513 break;
514 case GL_STENCIL_ATTACHMENT: 514 case GL_STENCIL_ATTACHMENT:
515 haveStencil = true; 515 haveStencil = true;
516 break; 516 break;
517 case GC3D_DEPTH_STENCIL_ATTACHMENT_WEBGL: 517 case GC3D_DEPTH_STENCIL_ATTACHMENT_WEBGL:
518 haveDepthStencil = true; 518 haveDepthStencil = true;
519 break; 519 break;
520 } 520 }
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
563 void WebGLFramebuffer::deleteObjectImpl(blink::WebGraphicsContext3D* context3d, Platform3DObject object) 563 void WebGLFramebuffer::deleteObjectImpl(blink::WebGraphicsContext3D* context3d, Platform3DObject object)
564 { 564 {
565 #if !ENABLE(OILPAN) 565 #if !ENABLE(OILPAN)
566 // With Oilpan, both the AttachmentMap and its WebGLAttachment objects are 566 // With Oilpan, both the AttachmentMap and its WebGLAttachment objects are
567 // GCed objects and cannot be accessed, as they may have been finalized 567 // GCed objects and cannot be accessed, as they may have been finalized
568 // already during the same GC sweep. 568 // already during the same GC sweep.
569 // 569 //
570 // The WebGLAttachment-derived classes instead handle detachment 570 // The WebGLAttachment-derived classes instead handle detachment
571 // on their own when finalizing, so the explicit notification is 571 // on their own when finalizing, so the explicit notification is
572 // not needed. 572 // not needed.
573 for (AttachmentMap::iterator it = m_attachments.begin(); it != m_attachments .end(); ++it) 573 for (const auto& attachment : m_attachments)
574 it->value->onDetached(context3d); 574 attachment.value->onDetached(context3d);
575 #endif 575 #endif
576 576
577 context3d->deleteFramebuffer(object); 577 context3d->deleteFramebuffer(object);
578 } 578 }
579 579
580 bool WebGLFramebuffer::isBound() const 580 bool WebGLFramebuffer::isBound() const
581 { 581 {
582 return (context()->m_framebufferBinding.get() == this); 582 return (context()->m_framebufferBinding.get() == this);
583 } 583 }
584 584
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
629 629
630 void WebGLFramebuffer::trace(Visitor* visitor) 630 void WebGLFramebuffer::trace(Visitor* visitor)
631 { 631 {
632 #if ENABLE(OILPAN) 632 #if ENABLE(OILPAN)
633 visitor->trace(m_attachments); 633 visitor->trace(m_attachments);
634 #endif 634 #endif
635 WebGLContextObject::trace(visitor); 635 WebGLContextObject::trace(visitor);
636 } 636 }
637 637
638 } 638 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698