| Index: gpu/command_buffer/service/shader_manager.cc
|
| diff --git a/gpu/command_buffer/service/shader_manager.cc b/gpu/command_buffer/service/shader_manager.cc
|
| index 0ad8bf09bb71b03ba4a3cecbd954df7fa0662de2..ef8e5ef45149b3e4f0406d88b685ad0354661d70 100644
|
| --- a/gpu/command_buffer/service/shader_manager.cc
|
| +++ b/gpu/command_buffer/service/shader_manager.cc
|
| @@ -69,14 +69,10 @@ void Shader::DoCompile() {
|
| const char* source_for_driver = last_compiled_source_.c_str();
|
| ShaderTranslatorInterface* translator = translator_.get();
|
| if (translator) {
|
| - bool success = translator->Translate(last_compiled_source_,
|
| - &log_info_,
|
| - &translated_source_,
|
| - &shader_version_,
|
| - &attrib_map_,
|
| - &uniform_map_,
|
| - &varying_map_,
|
| - &name_map_);
|
| + bool success = translator->Translate(
|
| + last_compiled_source_, &log_info_, &translated_source_,
|
| + &shader_version_, &attrib_map_, &uniform_map_, &varying_map_,
|
| + &output_variable_list_, &name_map_);
|
| if (!success) {
|
| return;
|
| }
|
| @@ -214,11 +210,24 @@ const sh::Uniform* Shader::GetUniformInfo(const std::string& name) const {
|
| return it != uniform_map_.end() ? &it->second : NULL;
|
| }
|
|
|
| -const sh::Varying* Shader::GetVaryingInfo(const std::string& name) const {
|
| +const sh::Varying* Shader::GetInputVariableInfo(const std::string& name) const {
|
| VaryingMap::const_iterator it = varying_map_.find(GetTopVariableName(name));
|
| return it != varying_map_.end() ? &it->second : NULL;
|
| }
|
|
|
| +const sh::OutputVariable* Shader::GetOutputVariableInfo(
|
| + const std::string& name) const {
|
| + std::string mappedName = GetTopVariableName(name);
|
| + // Number of output variables is expected to be so low that
|
| + // a linear search of a list should be faster than using a map.
|
| + auto iter =
|
| + std::find_if(output_variable_list_.begin(), output_variable_list_.end(),
|
| + [mappedName](const sh::OutputVariable& output_var) {
|
| + return output_var.mappedName == mappedName;
|
| + });
|
| + return iter != output_variable_list_.end() ? &(*iter) : nullptr;
|
| +}
|
| +
|
| ShaderManager::ShaderManager() {}
|
|
|
| ShaderManager::~ShaderManager() {
|
|
|