Chromium Code Reviews| Index: gpu/command_buffer/service/framebuffer_manager.cc |
| =================================================================== |
| --- gpu/command_buffer/service/framebuffer_manager.cc (revision 186778) |
| +++ gpu/command_buffer/service/framebuffer_manager.cc (working copy) |
| @@ -254,6 +254,9 @@ |
| has_been_bound_(false), |
| framebuffer_complete_state_count_id_(0) { |
| manager->StartTracking(this); |
| + draw_buffers_[0] = GL_COLOR_ATTACHMENT0; |
| + for (GLsizei i = 1; i < kMaxDrawBuffers; ++i) |
| + draw_buffers_[i] = GL_NONE; |
| } |
| Framebuffer::~Framebuffer() { |
| @@ -402,6 +405,19 @@ |
| return true; |
| } |
| +GLenum Framebuffer::GetDrawBuffer(GLenum draw_buffer) const { |
| + GLsizei index = static_cast<GLsizei>( |
| + draw_buffer - GL_DRAW_BUFFER0_ARB); |
| + CHECK(index >= 0 && index < kMaxDrawBuffers); |
|
greggman
2013/03/08 21:48:28
Do these need to be CHECKs? We don't do CHECKS for
Zhenyao Mo
2013/03/13 01:22:02
Done.
|
| + return draw_buffers_[index]; |
| +} |
| + |
| +void Framebuffer::SetDrawBuffers(GLsizei n, const GLenum* bufs) { |
| + CHECK(n <= kMaxDrawBuffers); |
|
greggman
2013/03/08 21:48:28
Same as above
Zhenyao Mo
2013/03/13 01:22:02
Done.
|
| + for (GLsizei i = 0; i < n; ++i) |
| + draw_buffers_[i] = bufs[i]; |
| +} |
| + |
| void Framebuffer::UnbindRenderbuffer( |
| GLenum target, Renderbuffer* renderbuffer) { |
| bool done; |
| @@ -456,10 +472,6 @@ |
| void Framebuffer::AttachRenderbuffer( |
| GLenum attachment, Renderbuffer* renderbuffer) { |
| - DCHECK(attachment == GL_COLOR_ATTACHMENT0 || |
| - attachment == GL_DEPTH_ATTACHMENT || |
| - attachment == GL_STENCIL_ATTACHMENT || |
| - attachment == GL_DEPTH_STENCIL_ATTACHMENT); |
| const Attachment* a = GetAttachment(attachment); |
| if (a) |
| a->DetachFromFramebuffer(); |
| @@ -475,10 +487,6 @@ |
| void Framebuffer::AttachTexture( |
| GLenum attachment, Texture* texture, GLenum target, |
| GLint level) { |
| - DCHECK(attachment == GL_COLOR_ATTACHMENT0 || |
| - attachment == GL_DEPTH_ATTACHMENT || |
| - attachment == GL_STENCIL_ATTACHMENT || |
| - attachment == GL_DEPTH_STENCIL_ATTACHMENT); |
| const Attachment* a = GetAttachment(attachment); |
| if (a) |
| a->DetachFromFramebuffer(); |