| 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/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 5399 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5410 LogClientServiceForInfo(program, program_id, "glLinkProgram"); | 5410 LogClientServiceForInfo(program, program_id, "glLinkProgram"); |
| 5411 ShaderTranslator* vertex_translator = NULL; | 5411 ShaderTranslator* vertex_translator = NULL; |
| 5412 ShaderTranslator* fragment_translator = NULL; | 5412 ShaderTranslator* fragment_translator = NULL; |
| 5413 if (use_shader_translator_) { | 5413 if (use_shader_translator_) { |
| 5414 vertex_translator = vertex_translator_.get(); | 5414 vertex_translator = vertex_translator_.get(); |
| 5415 fragment_translator = fragment_translator_.get(); | 5415 fragment_translator = fragment_translator_.get(); |
| 5416 } | 5416 } |
| 5417 if (program->Link(shader_manager(), | 5417 if (program->Link(shader_manager(), |
| 5418 vertex_translator, | 5418 vertex_translator, |
| 5419 fragment_translator, | 5419 fragment_translator, |
| 5420 feature_info_.get(), | |
| 5421 shader_cache_callback_)) { | 5420 shader_cache_callback_)) { |
| 5422 if (program == state_.current_program.get()) { | 5421 if (program == state_.current_program.get()) { |
| 5423 if (workarounds().use_current_program_after_successful_link) { | 5422 if (workarounds().use_current_program_after_successful_link) |
| 5424 glUseProgram(program->service_id()); | 5423 glUseProgram(program->service_id()); |
| 5425 } | 5424 if (workarounds().clear_uniforms_before_first_program_use) |
| 5426 program_manager()->ClearUniforms(program); | 5425 program_manager()->ClearUniforms(program); |
| 5427 } | 5426 } |
| 5428 } | 5427 } |
| 5429 }; | 5428 }; |
| 5430 | 5429 |
| 5431 void GLES2DecoderImpl::DoTexParameterf( | 5430 void GLES2DecoderImpl::DoTexParameterf( |
| 5432 GLenum target, GLenum pname, GLfloat param) { | 5431 GLenum target, GLenum pname, GLfloat param) { |
| 5433 TextureRef* texture = texture_manager()->GetTextureInfoForTarget( | 5432 TextureRef* texture = texture_manager()->GetTextureInfoForTarget( |
| 5434 &state_, target); | 5433 &state_, target); |
| 5435 if (!texture) { | 5434 if (!texture) { |
| 5436 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glTexParameterf", "unknown texture"); | 5435 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glTexParameterf", "unknown texture"); |
| (...skipping 445 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5882 } | 5881 } |
| 5883 if (state_.current_program.get()) { | 5882 if (state_.current_program.get()) { |
| 5884 program_manager()->UnuseProgram(shader_manager(), | 5883 program_manager()->UnuseProgram(shader_manager(), |
| 5885 state_.current_program.get()); | 5884 state_.current_program.get()); |
| 5886 } | 5885 } |
| 5887 state_.current_program = program; | 5886 state_.current_program = program; |
| 5888 LogClientServiceMapping("glUseProgram", program_id, service_id); | 5887 LogClientServiceMapping("glUseProgram", program_id, service_id); |
| 5889 glUseProgram(service_id); | 5888 glUseProgram(service_id); |
| 5890 if (state_.current_program.get()) { | 5889 if (state_.current_program.get()) { |
| 5891 program_manager()->UseProgram(state_.current_program.get()); | 5890 program_manager()->UseProgram(state_.current_program.get()); |
| 5891 if (workarounds().clear_uniforms_before_first_program_use) |
| 5892 program_manager()->ClearUniforms(program); |
| 5892 } | 5893 } |
| 5893 } | 5894 } |
| 5894 | 5895 |
| 5895 void GLES2DecoderImpl::RenderWarning( | 5896 void GLES2DecoderImpl::RenderWarning( |
| 5896 const char* filename, int line, const std::string& msg) { | 5897 const char* filename, int line, const std::string& msg) { |
| 5897 logger_.LogMessage(filename, line, std::string("RENDER WARNING: ") + msg); | 5898 logger_.LogMessage(filename, line, std::string("RENDER WARNING: ") + msg); |
| 5898 } | 5899 } |
| 5899 | 5900 |
| 5900 void GLES2DecoderImpl::PerformanceWarning( | 5901 void GLES2DecoderImpl::PerformanceWarning( |
| 5901 const char* filename, int line, const std::string& msg) { | 5902 const char* filename, int line, const std::string& msg) { |
| (...skipping 707 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6609 Shader* shader = GetShaderInfoNotProgram(client_id, "glCompileShader"); | 6610 Shader* shader = GetShaderInfoNotProgram(client_id, "glCompileShader"); |
| 6610 if (!shader) { | 6611 if (!shader) { |
| 6611 return; | 6612 return; |
| 6612 } | 6613 } |
| 6613 ShaderTranslator* translator = NULL; | 6614 ShaderTranslator* translator = NULL; |
| 6614 if (use_shader_translator_) { | 6615 if (use_shader_translator_) { |
| 6615 translator = shader->shader_type() == GL_VERTEX_SHADER ? | 6616 translator = shader->shader_type() == GL_VERTEX_SHADER ? |
| 6616 vertex_translator_.get() : fragment_translator_.get(); | 6617 vertex_translator_.get() : fragment_translator_.get(); |
| 6617 } | 6618 } |
| 6618 | 6619 |
| 6619 program_manager()->DoCompileShader(shader, translator, feature_info_.get()); | 6620 program_manager()->DoCompileShader( |
| 6621 shader, |
| 6622 translator, |
| 6623 feature_info_->feature_flags().angle_translated_shader_source ? |
| 6624 ProgramManager::kANGLE : ProgramManager::kGL); |
| 6620 }; | 6625 }; |
| 6621 | 6626 |
| 6622 void GLES2DecoderImpl::DoGetShaderiv( | 6627 void GLES2DecoderImpl::DoGetShaderiv( |
| 6623 GLuint shader_id, GLenum pname, GLint* params) { | 6628 GLuint shader_id, GLenum pname, GLint* params) { |
| 6624 Shader* shader = GetShaderInfoNotProgram(shader_id, "glGetShaderiv"); | 6629 Shader* shader = GetShaderInfoNotProgram(shader_id, "glGetShaderiv"); |
| 6625 if (!shader) { | 6630 if (!shader) { |
| 6626 return; | 6631 return; |
| 6627 } | 6632 } |
| 6628 switch (pname) { | 6633 switch (pname) { |
| 6629 case GL_SHADER_SOURCE_LENGTH: | 6634 case GL_SHADER_SOURCE_LENGTH: |
| (...skipping 3886 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 10516 DoDidUseTexImageIfNeeded(texture, texture->target()); | 10521 DoDidUseTexImageIfNeeded(texture, texture->target()); |
| 10517 } | 10522 } |
| 10518 | 10523 |
| 10519 // Include the auto-generated part of this file. We split this because it means | 10524 // 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 | 10525 // 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. | 10526 // instead of having to edit some template or the code generator. |
| 10522 #include "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h" | 10527 #include "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h" |
| 10523 | 10528 |
| 10524 } // namespace gles2 | 10529 } // namespace gles2 |
| 10525 } // namespace gpu | 10530 } // namespace gpu |
| OLD | NEW |