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

Side by Side Diff: gpu/command_buffer/service/gles2_cmd_decoder.cc

Issue 139013008: Implement support for rendering to 32-bit float textures on ES3 (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Address review feedback, split extension and add tests Created 6 years, 10 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 // 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/gles2_cmd_decoder.h" 5 #include "gpu/command_buffer/service/gles2_cmd_decoder.h"
6 6
7 #include <stdio.h> 7 #include <stdio.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <list> 10 #include <list>
(...skipping 2941 matching lines...) Expand 10 before | Expand all | Expand 10 after
2952 backbuffer_needs_clear_bits_ = 0; 2952 backbuffer_needs_clear_bits_ = 0;
2953 RestoreClearState(); 2953 RestoreClearState();
2954 } 2954 }
2955 return true; 2955 return true;
2956 } 2956 }
2957 2957
2958 if (framebuffer_manager()->IsComplete(framebuffer)) { 2958 if (framebuffer_manager()->IsComplete(framebuffer)) {
2959 return true; 2959 return true;
2960 } 2960 }
2961 2961
2962 GLenum completeness = framebuffer->IsPossiblyComplete(); 2962 GLenum completeness = framebuffer->IsPossiblyComplete(
2963 features().chromium_color_buffer_float_rgba,
2964 features().chromium_color_buffer_float_rgb);
2963 if (completeness != GL_FRAMEBUFFER_COMPLETE) { 2965 if (completeness != GL_FRAMEBUFFER_COMPLETE) {
2964 LOCAL_SET_GL_ERROR( 2966 LOCAL_SET_GL_ERROR(
2965 GL_INVALID_FRAMEBUFFER_OPERATION, func_name, "framebuffer incomplete"); 2967 GL_INVALID_FRAMEBUFFER_OPERATION, func_name, "framebuffer incomplete");
2966 return false; 2968 return false;
2967 } 2969 }
2968 2970
2969 // Are all the attachments cleared? 2971 // Are all the attachments cleared?
2970 if (renderbuffer_manager()->HaveUnclearedRenderbuffers() || 2972 if (renderbuffer_manager()->HaveUnclearedRenderbuffers() ||
2971 texture_manager()->HaveUnclearedMips()) { 2973 texture_manager()->HaveUnclearedMips()) {
2972 if (!framebuffer->IsCleared()) { 2974 if (!framebuffer->IsCleared()) {
(...skipping 1915 matching lines...) Expand 10 before | Expand all | Expand 10 after
4888 glEnable(GL_SCISSOR_TEST); 4890 glEnable(GL_SCISSOR_TEST);
4889 } 4891 }
4890 } 4892 }
4891 4893
4892 GLenum GLES2DecoderImpl::DoCheckFramebufferStatus(GLenum target) { 4894 GLenum GLES2DecoderImpl::DoCheckFramebufferStatus(GLenum target) {
4893 Framebuffer* framebuffer = 4895 Framebuffer* framebuffer =
4894 GetFramebufferInfoForTarget(target); 4896 GetFramebufferInfoForTarget(target);
4895 if (!framebuffer) { 4897 if (!framebuffer) {
4896 return GL_FRAMEBUFFER_COMPLETE; 4898 return GL_FRAMEBUFFER_COMPLETE;
4897 } 4899 }
4898 GLenum completeness = framebuffer->IsPossiblyComplete(); 4900 GLenum completeness = framebuffer->IsPossiblyComplete(
4901 features().chromium_color_buffer_float_rgba,
4902 features().chromium_color_buffer_float_rgb);
4899 if (completeness != GL_FRAMEBUFFER_COMPLETE) { 4903 if (completeness != GL_FRAMEBUFFER_COMPLETE) {
4900 return completeness; 4904 return completeness;
4901 } 4905 }
4902 return framebuffer->GetStatus(texture_manager(), target); 4906 return framebuffer->GetStatus(texture_manager(), target);
4903 } 4907 }
4904 4908
4905 void GLES2DecoderImpl::DoFramebufferTexture2D( 4909 void GLES2DecoderImpl::DoFramebufferTexture2D(
4906 GLenum target, GLenum attachment, GLenum textarget, 4910 GLenum target, GLenum attachment, GLenum textarget,
4907 GLuint client_texture_id, GLint level) { 4911 GLuint client_texture_id, GLint level) {
4908 DoFramebufferTexture2DCommon( 4912 DoFramebufferTexture2DCommon(
(...skipping 5607 matching lines...) Expand 10 before | Expand all | Expand 10 after
10516 DoDidUseTexImageIfNeeded(texture, texture->target()); 10520 DoDidUseTexImageIfNeeded(texture, texture->target());
10517 } 10521 }
10518 10522
10519 // Include the auto-generated part of this file. We split this because it means 10523 // Include the auto-generated part of this file. We split this because it means
10520 // we can easily edit the non-auto generated parts right here in this file 10524 // we can easily edit the non-auto generated parts right here in this file
10521 // instead of having to edit some template or the code generator. 10525 // instead of having to edit some template or the code generator.
10522 #include "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h" 10526 #include "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h"
10523 10527
10524 } // namespace gles2 10528 } // namespace gles2
10525 } // namespace gpu 10529 } // namespace gpu
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698