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 <limits.h> | 7 #include <limits.h> |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 #include <stdint.h> | 9 #include <stdint.h> |
10 #include <stdio.h> | 10 #include <stdio.h> |
(...skipping 637 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
648 | 648 |
649 void WaitForReadPixels(base::Closure callback) override; | 649 void WaitForReadPixels(base::Closure callback) override; |
650 | 650 |
651 Logger* GetLogger() override; | 651 Logger* GetLogger() override; |
652 | 652 |
653 void BeginDecoding() override; | 653 void BeginDecoding() override; |
654 void EndDecoding() override; | 654 void EndDecoding() override; |
655 | 655 |
656 ErrorState* GetErrorState() override; | 656 ErrorState* GetErrorState() override; |
657 const ContextState* GetContextState() override { return &state_; } | 657 const ContextState* GetContextState() override { return &state_; } |
| 658 scoped_refptr<ShaderTranslatorInterface> GetTranslator(GLenum type) override; |
658 | 659 |
659 void SetShaderCacheCallback(const ShaderCacheCallback& callback) override; | 660 void SetShaderCacheCallback(const ShaderCacheCallback& callback) override; |
660 void SetFenceSyncReleaseCallback( | 661 void SetFenceSyncReleaseCallback( |
661 const FenceSyncReleaseCallback& callback) override; | 662 const FenceSyncReleaseCallback& callback) override; |
662 void SetWaitFenceSyncCallback(const WaitFenceSyncCallback& callback) override; | 663 void SetWaitFenceSyncCallback(const WaitFenceSyncCallback& callback) override; |
663 | 664 |
664 void SetDescheduleUntilFinishedCallback( | 665 void SetDescheduleUntilFinishedCallback( |
665 const NoParamCallback& callback) override; | 666 const NoParamCallback& callback) override; |
666 void SetRescheduleAfterFinishedCallback( | 667 void SetRescheduleAfterFinishedCallback( |
667 const NoParamCallback& callback) override; | 668 const NoParamCallback& callback) override; |
(...skipping 8648 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
9316 GLuint client_program_id, GLsizei count, const char* const* varyings, | 9317 GLuint client_program_id, GLsizei count, const char* const* varyings, |
9317 GLenum buffer_mode) { | 9318 GLenum buffer_mode) { |
9318 Program* program = GetProgramInfoNotShader( | 9319 Program* program = GetProgramInfoNotShader( |
9319 client_program_id, "glTransformFeedbackVaryings"); | 9320 client_program_id, "glTransformFeedbackVaryings"); |
9320 if (!program) { | 9321 if (!program) { |
9321 return; | 9322 return; |
9322 } | 9323 } |
9323 program->TransformFeedbackVaryings(count, varyings, buffer_mode); | 9324 program->TransformFeedbackVaryings(count, varyings, buffer_mode); |
9324 } | 9325 } |
9325 | 9326 |
| 9327 scoped_refptr<ShaderTranslatorInterface> GLES2DecoderImpl::GetTranslator( |
| 9328 GLenum type) { |
| 9329 return type == GL_VERTEX_SHADER ? vertex_translator_ : fragment_translator_; |
| 9330 } |
| 9331 |
9326 void GLES2DecoderImpl::DoCompileShader(GLuint client_id) { | 9332 void GLES2DecoderImpl::DoCompileShader(GLuint client_id) { |
9327 TRACE_EVENT0("gpu", "GLES2DecoderImpl::DoCompileShader"); | 9333 TRACE_EVENT0("gpu", "GLES2DecoderImpl::DoCompileShader"); |
9328 Shader* shader = GetShaderInfoNotProgram(client_id, "glCompileShader"); | 9334 Shader* shader = GetShaderInfoNotProgram(client_id, "glCompileShader"); |
9329 if (!shader) { | 9335 if (!shader) { |
9330 return; | 9336 return; |
9331 } | 9337 } |
9332 | 9338 |
9333 scoped_refptr<ShaderTranslatorInterface> translator; | 9339 scoped_refptr<ShaderTranslatorInterface> translator; |
9334 if (!feature_info_->disable_shader_translator()) { | 9340 if (!feature_info_->disable_shader_translator()) |
9335 translator = shader->shader_type() == GL_VERTEX_SHADER ? | 9341 translator = GetTranslator(shader->shader_type()); |
9336 vertex_translator_ : fragment_translator_; | |
9337 } | |
9338 | 9342 |
9339 const Shader::TranslatedShaderSourceType source_type = | 9343 const Shader::TranslatedShaderSourceType source_type = |
9340 feature_info_->feature_flags().angle_translated_shader_source ? | 9344 feature_info_->feature_flags().angle_translated_shader_source ? |
9341 Shader::kANGLE : Shader::kGL; | 9345 Shader::kANGLE : Shader::kGL; |
9342 shader->RequestCompile(translator, source_type); | 9346 shader->RequestCompile(translator, source_type); |
9343 } | 9347 } |
9344 | 9348 |
9345 void GLES2DecoderImpl::DoGetShaderiv( | 9349 void GLES2DecoderImpl::DoGetShaderiv( |
9346 GLuint shader_id, GLenum pname, GLint* params) { | 9350 GLuint shader_id, GLenum pname, GLint* params) { |
9347 Shader* shader = GetShaderInfoNotProgram(shader_id, "glGetShaderiv"); | 9351 Shader* shader = GetShaderInfoNotProgram(shader_id, "glGetShaderiv"); |
(...skipping 8013 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
17361 } | 17365 } |
17362 | 17366 |
17363 // Include the auto-generated part of this file. We split this because it means | 17367 // Include the auto-generated part of this file. We split this because it means |
17364 // we can easily edit the non-auto generated parts right here in this file | 17368 // we can easily edit the non-auto generated parts right here in this file |
17365 // instead of having to edit some template or the code generator. | 17369 // instead of having to edit some template or the code generator. |
17366 #include "base/macros.h" | 17370 #include "base/macros.h" |
17367 #include "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h" | 17371 #include "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h" |
17368 | 17372 |
17369 } // namespace gles2 | 17373 } // namespace gles2 |
17370 } // namespace gpu | 17374 } // namespace gpu |
OLD | NEW |