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

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

Issue 10807072: Merge 147584 - On desktop GL, don't disable vertex attribute 0 when restoring state, or nothing wil… (Closed) Base URL: svn://svn.chromium.org/chrome/branches/1180/src/
Patch Set: Created 8 years, 5 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.cc » ('j') | 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 #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 5201 matching lines...) Expand 10 before | Expand all | Expand 10 after
5212 BufferManager::BufferInfo* buffer_info = info->buffer(); 5212 BufferManager::BufferInfo* buffer_info = info->buffer();
5213 glBindBuffer(GL_ARRAY_BUFFER, buffer_info ? buffer_info->service_id() : 0); 5213 glBindBuffer(GL_ARRAY_BUFFER, buffer_info ? buffer_info->service_id() : 0);
5214 glVertexAttribPointer( 5214 glVertexAttribPointer(
5215 attrib, info->size(), info->type(), info->normalized(), info->gl_stride(), 5215 attrib, info->size(), info->type(), info->normalized(), info->gl_stride(),
5216 ptr); 5216 ptr);
5217 if (info->divisor()) 5217 if (info->divisor())
5218 glVertexAttribDivisorANGLE(attrib, info->divisor()); 5218 glVertexAttribDivisorANGLE(attrib, info->divisor());
5219 glBindBuffer(GL_ARRAY_BUFFER, 5219 glBindBuffer(GL_ARRAY_BUFFER,
5220 bound_array_buffer_ ? bound_array_buffer_->service_id() : 0); 5220 bound_array_buffer_ ? bound_array_buffer_->service_id() : 0);
5221 5221
5222 if (info->enabled()) { 5222 // Never touch vertex attribute 0's state (in particular, never
5223 glEnableVertexAttribArray(attrib); 5223 // disable it) when running on desktop GL because it will never be
5224 } else { 5224 // re-enabled.
5225 glDisableVertexAttribArray(attrib); 5225 if (attrib != 0 ||
5226 gfx::GetGLImplementation() == gfx::kGLImplementationEGLGLES2) {
5227 if (info->enabled()) {
5228 glEnableVertexAttribArray(attrib);
5229 } else {
5230 glDisableVertexAttribArray(attrib);
5231 }
5226 } 5232 }
5227 } 5233 }
5228 5234
5229 bool GLES2DecoderImpl::SimulateFixedAttribs( 5235 bool GLES2DecoderImpl::SimulateFixedAttribs(
5230 const char* function_name, 5236 const char* function_name,
5231 GLuint max_vertex_accessed, bool* simulated, GLsizei primcount) { 5237 GLuint max_vertex_accessed, bool* simulated, GLsizei primcount) {
5232 DCHECK(simulated); 5238 DCHECK(simulated);
5233 *simulated = false; 5239 *simulated = false;
5234 if (gfx::GetGLImplementation() == gfx::kGLImplementationEGLGLES2) 5240 if (gfx::GetGLImplementation() == gfx::kGLImplementationEGLGLES2)
5235 return true; 5241 return true;
(...skipping 3776 matching lines...) Expand 10 before | Expand all | Expand 10 after
9012 BindAndApplyTextureParameters(info); 9018 BindAndApplyTextureParameters(info);
9013 } 9019 }
9014 9020
9015 // Include the auto-generated part of this file. We split this because it means 9021 // Include the auto-generated part of this file. We split this because it means
9016 // we can easily edit the non-auto generated parts right here in this file 9022 // we can easily edit the non-auto generated parts right here in this file
9017 // instead of having to edit some template or the code generator. 9023 // instead of having to edit some template or the code generator.
9018 #include "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h" 9024 #include "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h"
9019 9025
9020 } // namespace gles2 9026 } // namespace gles2
9021 } // namespace gpu 9027 } // namespace gpu
OLDNEW
« no previous file with comments | « no previous file | gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698