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

Side by Side Diff: gpu/command_buffer/client/gles2_implementation.cc

Issue 2576273002: Allow GL_{DRAW,READ}_FRAMEBUFFER on OpenGL ES3 without CHROMIUM_framebuffer_multisample (Closed)
Patch Set: Created 4 years 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 // A class to emulate GLES2 over command buffers. 5 // A class to emulate GLES2 over command buffers.
6 6
7 #include "gpu/command_buffer/client/gles2_implementation.h" 7 #include "gpu/command_buffer/client/gles2_implementation.h"
8 8
9 #include <GLES2/gl2.h> 9 #include <GLES2/gl2.h>
10 #include <GLES2/gl2ext.h> 10 #include <GLES2/gl2ext.h>
(...skipping 818 matching lines...) Expand 10 before | Expand all | Expand 10 after
829 *params = 829 *params =
830 texture_units_[active_texture_unit_].bound_texture_external_oes; 830 texture_units_[active_texture_unit_].bound_texture_external_oes;
831 return true; 831 return true;
832 case GL_PIXEL_PACK_TRANSFER_BUFFER_BINDING_CHROMIUM: 832 case GL_PIXEL_PACK_TRANSFER_BUFFER_BINDING_CHROMIUM:
833 *params = bound_pixel_pack_transfer_buffer_id_; 833 *params = bound_pixel_pack_transfer_buffer_id_;
834 return true; 834 return true;
835 case GL_PIXEL_UNPACK_TRANSFER_BUFFER_BINDING_CHROMIUM: 835 case GL_PIXEL_UNPACK_TRANSFER_BUFFER_BINDING_CHROMIUM:
836 *params = bound_pixel_unpack_transfer_buffer_id_; 836 *params = bound_pixel_unpack_transfer_buffer_id_;
837 return true; 837 return true;
838 case GL_READ_FRAMEBUFFER_BINDING: 838 case GL_READ_FRAMEBUFFER_BINDING:
839 if (IsChromiumFramebufferMultisampleAvailable()) { 839 if (capabilities_.major_version >= 3 ||
840 IsChromiumFramebufferMultisampleAvailable()) {
840 *params = bound_read_framebuffer_; 841 *params = bound_read_framebuffer_;
841 return true; 842 return true;
842 } 843 }
843 break; 844 break;
844 case GL_TIMESTAMP_EXT: 845 case GL_TIMESTAMP_EXT:
845 // We convert all GPU timestamps to CPU time. 846 // We convert all GPU timestamps to CPU time.
846 *params = base::saturated_cast<GLint>( 847 *params = base::saturated_cast<GLint>(
847 (base::TimeTicks::Now() - base::TimeTicks()).InMicroseconds() 848 (base::TimeTicks::Now() - base::TimeTicks()).InMicroseconds()
848 * base::Time::kNanosecondsPerMicrosecond); 849 * base::Time::kNanosecondsPerMicrosecond);
849 return true; 850 return true;
(...skipping 3502 matching lines...) Expand 10 before | Expand all | Expand 10 after
4352 switch (target) { 4353 switch (target) {
4353 case GL_FRAMEBUFFER: 4354 case GL_FRAMEBUFFER:
4354 if (bound_framebuffer_ != framebuffer || 4355 if (bound_framebuffer_ != framebuffer ||
4355 bound_read_framebuffer_ != framebuffer) { 4356 bound_read_framebuffer_ != framebuffer) {
4356 bound_framebuffer_ = framebuffer; 4357 bound_framebuffer_ = framebuffer;
4357 bound_read_framebuffer_ = framebuffer; 4358 bound_read_framebuffer_ = framebuffer;
4358 changed = true; 4359 changed = true;
4359 } 4360 }
4360 break; 4361 break;
4361 case GL_READ_FRAMEBUFFER: 4362 case GL_READ_FRAMEBUFFER:
4362 if (!IsChromiumFramebufferMultisampleAvailable()) { 4363 DCHECK(capabilities_.major_version >= 3 ||
4363 SetGLErrorInvalidEnum("glBindFramebuffer", target, "target"); 4364 IsChromiumFramebufferMultisampleAvailable());
4364 return;
4365 }
4366 if (bound_read_framebuffer_ != framebuffer) { 4365 if (bound_read_framebuffer_ != framebuffer) {
4367 bound_read_framebuffer_ = framebuffer; 4366 bound_read_framebuffer_ = framebuffer;
4368 changed = true; 4367 changed = true;
4369 } 4368 }
4370 break; 4369 break;
4371 case GL_DRAW_FRAMEBUFFER: 4370 case GL_DRAW_FRAMEBUFFER:
4372 if (!IsChromiumFramebufferMultisampleAvailable()) { 4371 DCHECK(capabilities_.major_version >= 3 ||
4373 SetGLErrorInvalidEnum("glBindFramebuffer", target, "target"); 4372 IsChromiumFramebufferMultisampleAvailable());
4374 return;
4375 }
4376 if (bound_framebuffer_ != framebuffer) { 4373 if (bound_framebuffer_ != framebuffer) {
4377 bound_framebuffer_ = framebuffer; 4374 bound_framebuffer_ = framebuffer;
4378 changed = true; 4375 changed = true;
4379 } 4376 }
4380 break; 4377 break;
4381 default: 4378 default:
4382 SetGLErrorInvalidEnum("glBindFramebuffer", target, "target"); 4379 SetGLErrorInvalidEnum("glBindFramebuffer", target, "target");
4383 return; 4380 return;
4384 } 4381 }
4385 4382
(...skipping 2679 matching lines...) Expand 10 before | Expand all | Expand 10 after
7065 CheckGLError(); 7062 CheckGLError();
7066 } 7063 }
7067 7064
7068 // Include the auto-generated part of this file. We split this because it means 7065 // Include the auto-generated part of this file. We split this because it means
7069 // we can easily edit the non-auto generated parts right here in this file 7066 // we can easily edit the non-auto generated parts right here in this file
7070 // instead of having to edit some template or the code generator. 7067 // instead of having to edit some template or the code generator.
7071 #include "gpu/command_buffer/client/gles2_implementation_impl_autogen.h" 7068 #include "gpu/command_buffer/client/gles2_implementation_impl_autogen.h"
7072 7069
7073 } // namespace gles2 7070 } // namespace gles2
7074 } // namespace gpu 7071 } // namespace gpu
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698