| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "gpu/command_buffer/service/framebuffer_manager.h" | 5 #include "gpu/command_buffer/service/framebuffer_manager.h" |
| 6 #include "base/logging.h" | 6 #include "base/logging.h" |
| 7 #include "base/strings/stringprintf.h" | 7 #include "base/strings/stringprintf.h" |
| 8 #include "gpu/command_buffer/common/gles2_cmd_utils.h" | 8 #include "gpu/command_buffer/common/gles2_cmd_utils.h" |
| 9 #include "gpu/command_buffer/service/framebuffer_completeness_cache.h" | 9 #include "gpu/command_buffer/service/framebuffer_completeness_cache.h" |
| 10 #include "gpu/command_buffer/service/renderbuffer_manager.h" | 10 #include "gpu/command_buffer/service/renderbuffer_manager.h" |
| (...skipping 227 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 238 DISALLOW_COPY_AND_ASSIGN(TextureAttachment); | 238 DISALLOW_COPY_AND_ASSIGN(TextureAttachment); |
| 239 }; | 239 }; |
| 240 | 240 |
| 241 FramebufferManager::TextureDetachObserver::TextureDetachObserver() {} | 241 FramebufferManager::TextureDetachObserver::TextureDetachObserver() {} |
| 242 | 242 |
| 243 FramebufferManager::TextureDetachObserver::~TextureDetachObserver() {} | 243 FramebufferManager::TextureDetachObserver::~TextureDetachObserver() {} |
| 244 | 244 |
| 245 FramebufferManager::FramebufferManager( | 245 FramebufferManager::FramebufferManager( |
| 246 uint32 max_draw_buffers, | 246 uint32 max_draw_buffers, |
| 247 uint32 max_color_attachments, | 247 uint32 max_color_attachments, |
| 248 ContextGroup::ContextType context_type, | 248 ContextType context_type, |
| 249 const scoped_refptr<FramebufferCompletenessCache>& | 249 const scoped_refptr<FramebufferCompletenessCache>& |
| 250 framebuffer_combo_complete_cache) | 250 framebuffer_combo_complete_cache) |
| 251 : framebuffer_state_change_count_(1), | 251 : framebuffer_state_change_count_(1), |
| 252 framebuffer_count_(0), | 252 framebuffer_count_(0), |
| 253 have_context_(true), | 253 have_context_(true), |
| 254 max_draw_buffers_(max_draw_buffers), | 254 max_draw_buffers_(max_draw_buffers), |
| 255 max_color_attachments_(max_color_attachments), | 255 max_color_attachments_(max_color_attachments), |
| 256 context_type_(context_type), | 256 context_type_(context_type), |
| 257 framebuffer_combo_complete_cache_(framebuffer_combo_complete_cache) { | 257 framebuffer_combo_complete_cache_(framebuffer_combo_complete_cache) { |
| 258 DCHECK_GT(max_draw_buffers_, 0u); | 258 DCHECK_GT(max_draw_buffers_, 0u); |
| (...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 484 if (!attachment->ValidForAttachmentType(attachment_type, | 484 if (!attachment->ValidForAttachmentType(attachment_type, |
| 485 manager_->max_color_attachments_)) { | 485 manager_->max_color_attachments_)) { |
| 486 return GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT; | 486 return GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT; |
| 487 } | 487 } |
| 488 if (width < 0) { | 488 if (width < 0) { |
| 489 width = attachment->width(); | 489 width = attachment->width(); |
| 490 height = attachment->height(); | 490 height = attachment->height(); |
| 491 if (width == 0 || height == 0) { | 491 if (width == 0 || height == 0) { |
| 492 return GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT; | 492 return GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT; |
| 493 } | 493 } |
| 494 } else if (manager_->context_type() != ContextGroup::CONTEXT_TYPE_WEBGL2) { | 494 } else if (manager_->context_type() != CONTEXT_TYPE_WEBGL2) { |
| 495 // TODO(zmo): revisit this if we create ES3 contexts for clients other | 495 // TODO(zmo): revisit this if we create ES3 contexts for clients other |
| 496 // than WebGL 2. | 496 // than WebGL 2. |
| 497 if (attachment->width() != width || attachment->height() != height) { | 497 if (attachment->width() != width || attachment->height() != height) { |
| 498 return GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT; | 498 return GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT; |
| 499 } | 499 } |
| 500 } | 500 } |
| 501 | 501 |
| 502 if (!attachment->CanRenderTo()) { | 502 if (!attachment->CanRenderTo()) { |
| 503 return GL_FRAMEBUFFER_UNSUPPORTED; | 503 return GL_FRAMEBUFFER_UNSUPPORTED; |
| 504 } | 504 } |
| (...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 777 texture_detach_observers_.begin(); | 777 texture_detach_observers_.begin(); |
| 778 it != texture_detach_observers_.end(); | 778 it != texture_detach_observers_.end(); |
| 779 ++it) { | 779 ++it) { |
| 780 TextureDetachObserver* observer = *it; | 780 TextureDetachObserver* observer = *it; |
| 781 observer->OnTextureRefDetachedFromFramebuffer(texture); | 781 observer->OnTextureRefDetachedFromFramebuffer(texture); |
| 782 } | 782 } |
| 783 } | 783 } |
| 784 | 784 |
| 785 } // namespace gles2 | 785 } // namespace gles2 |
| 786 } // namespace gpu | 786 } // namespace gpu |
| OLD | NEW |