| 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 #ifndef GPU_COMMAND_BUFFER_SERVICE_SHADER_TRANSLATOR_H_ | 5 #ifndef GPU_COMMAND_BUFFER_SERVICE_SHADER_TRANSLATOR_H_ |
| 6 #define GPU_COMMAND_BUFFER_SERVICE_SHADER_TRANSLATOR_H_ | 6 #define GPU_COMMAND_BUFFER_SERVICE_SHADER_TRANSLATOR_H_ |
| 7 | 7 |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "base/containers/hash_tables.h" | 10 #include "base/containers/hash_tables.h" |
| (...skipping 26 matching lines...) Expand all Loading... |
| 37 : public base::RefCounted<ShaderTranslatorInterface> { | 37 : public base::RefCounted<ShaderTranslatorInterface> { |
| 38 public: | 38 public: |
| 39 ShaderTranslatorInterface() {} | 39 ShaderTranslatorInterface() {} |
| 40 | 40 |
| 41 // Initializes the translator. | 41 // Initializes the translator. |
| 42 // Must be called once before using the translator object. | 42 // Must be called once before using the translator object. |
| 43 virtual bool Init(sh::GLenum shader_type, | 43 virtual bool Init(sh::GLenum shader_type, |
| 44 ShShaderSpec shader_spec, | 44 ShShaderSpec shader_spec, |
| 45 const ShBuiltInResources* resources, | 45 const ShBuiltInResources* resources, |
| 46 ShShaderOutput shader_output_language, | 46 ShShaderOutput shader_output_language, |
| 47 ShCompileOptions driver_bug_workarounds) = 0; | 47 ShCompileOptions driver_bug_workarounds, |
| 48 bool gl_shader_interm_output) = 0; |
| 48 | 49 |
| 49 // Translates the given shader source. | 50 // Translates the given shader source. |
| 50 // Returns true if translation is successful, false otherwise. | 51 // Returns true if translation is successful, false otherwise. |
| 51 // Always fill |info_log| if it's non-null. | 52 // Always fill |info_log| if it's non-null. |
| 52 // Upon success, fill |translated_shader|, |attrib_map|, |uniform_map|, | 53 // Upon success, fill |translated_shader|, |attrib_map|, |uniform_map|, |
| 53 // |varying_map|, and |name_map| if they are non-null. | 54 // |varying_map|, and |name_map| if they are non-null. |
| 54 virtual bool Translate(const std::string& shader_source, | 55 virtual bool Translate(const std::string& shader_source, |
| 55 std::string* info_log, | 56 std::string* info_log, |
| 56 std::string* translated_shader, | 57 std::string* translated_shader, |
| 57 int* shader_version, | 58 int* shader_version, |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 93 | 94 |
| 94 // Return shader output lanaguage type based on the context version. | 95 // Return shader output lanaguage type based on the context version. |
| 95 static ShShaderOutput GetShaderOutputLanguageForContext( | 96 static ShShaderOutput GetShaderOutputLanguageForContext( |
| 96 const gfx::GLVersionInfo& context_version); | 97 const gfx::GLVersionInfo& context_version); |
| 97 | 98 |
| 98 // Overridden from ShaderTranslatorInterface. | 99 // Overridden from ShaderTranslatorInterface. |
| 99 bool Init(sh::GLenum shader_type, | 100 bool Init(sh::GLenum shader_type, |
| 100 ShShaderSpec shader_spec, | 101 ShShaderSpec shader_spec, |
| 101 const ShBuiltInResources* resources, | 102 const ShBuiltInResources* resources, |
| 102 ShShaderOutput shader_output_language, | 103 ShShaderOutput shader_output_language, |
| 103 ShCompileOptions driver_bug_workarounds) override; | 104 ShCompileOptions driver_bug_workarounds, |
| 105 bool gl_shader_interm_output) override; |
| 104 | 106 |
| 105 // Overridden from ShaderTranslatorInterface. | 107 // Overridden from ShaderTranslatorInterface. |
| 106 bool Translate(const std::string& shader_source, | 108 bool Translate(const std::string& shader_source, |
| 107 std::string* info_log, | 109 std::string* info_log, |
| 108 std::string* translated_source, | 110 std::string* translated_source, |
| 109 int* shader_version, | 111 int* shader_version, |
| 110 AttributeMap* attrib_map, | 112 AttributeMap* attrib_map, |
| 111 UniformMap* uniform_map, | 113 UniformMap* uniform_map, |
| 112 VaryingMap* varying_map, | 114 VaryingMap* varying_map, |
| 113 InterfaceBlockMap* interface_block_map, | 115 InterfaceBlockMap* interface_block_map, |
| 114 OutputVariableList* output_variable_list, | 116 OutputVariableList* output_variable_list, |
| 115 NameMap* name_map) const override; | 117 NameMap* name_map) const override; |
| 116 | 118 |
| 117 std::string GetStringForOptionsThatWouldAffectCompilation() const override; | 119 std::string GetStringForOptionsThatWouldAffectCompilation() const override; |
| 118 | 120 |
| 119 void AddDestructionObserver(DestructionObserver* observer); | 121 void AddDestructionObserver(DestructionObserver* observer); |
| 120 void RemoveDestructionObserver(DestructionObserver* observer); | 122 void RemoveDestructionObserver(DestructionObserver* observer); |
| 121 | 123 |
| 122 private: | 124 private: |
| 123 ~ShaderTranslator() override; | 125 ~ShaderTranslator() override; |
| 124 | 126 |
| 125 int GetCompileOptions() const; | 127 int GetCompileOptions() const; |
| 126 | 128 |
| 127 ShHandle compiler_; | 129 ShHandle compiler_; |
| 128 ShCompileOptions driver_bug_workarounds_; | 130 ShCompileOptions driver_bug_workarounds_; |
| 131 bool gl_shader_interm_output_; |
| 129 base::ObserverList<DestructionObserver> destruction_observers_; | 132 base::ObserverList<DestructionObserver> destruction_observers_; |
| 130 }; | 133 }; |
| 131 | 134 |
| 132 } // namespace gles2 | 135 } // namespace gles2 |
| 133 } // namespace gpu | 136 } // namespace gpu |
| 134 | 137 |
| 135 #endif // GPU_COMMAND_BUFFER_SERVICE_SHADER_TRANSLATOR_H_ | 138 #endif // GPU_COMMAND_BUFFER_SERVICE_SHADER_TRANSLATOR_H_ |
| 136 | 139 |
| OLD | NEW |