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

Unified Diff: gpu/command_buffer/service/shader_manager.cc

Issue 1309743005: command_buffer: Implement EXT_blend_func_extended (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@new-05-path-fragment-input-gen
Patch Set: rebase Created 5 years 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « gpu/command_buffer/service/shader_manager.h ('k') | gpu/command_buffer/service/shader_manager_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 342a47697ed17592a10578f4ff12d231e516ad98..22df5f7fef0f4c9b4ed1743bc07e2432cca5143d 100644
--- a/gpu/command_buffer/service/shader_manager.cc
+++ b/gpu/command_buffer/service/shader_manager.cc
@@ -69,15 +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_,
- &interface_block_map_,
- &name_map_);
+ bool success = translator->Translate(
+ last_compiled_source_, &log_info_, &translated_source_,
+ &shader_version_, &attrib_map_, &uniform_map_, &varying_map_,
+ &interface_block_map_, &output_variable_list_, &name_map_);
if (!success) {
return;
}
@@ -215,6 +210,15 @@ const std::string* Shader::GetInterfaceBlockMappedName(
return NULL;
}
+const std::string* Shader::GetOutputVariableMappedName(
+ const std::string& original_name) const {
+ for (const auto& value : output_variable_list_) {
+ if (value.name == original_name)
+ return &value.mappedName;
+ }
+ return nullptr;
+}
+
const std::string* Shader::GetOriginalNameFromHashedName(
const std::string& hashed_name) const {
NameMap::const_iterator it = name_map_.find(hashed_name);
@@ -249,6 +253,18 @@ const sh::InterfaceBlock* Shader::GetInterfaceBlockInfo(
return it != interface_block_map_.end() ? &it->second : NULL;
}
+const sh::OutputVariable* Shader::GetOutputVariableInfo(
+ const std::string& name) const {
+ std::string mapped_name = 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.
+ for (const auto& value : output_variable_list_) {
+ if (value.mappedName == mapped_name)
+ return &value;
+ }
+ return nullptr;
+}
+
ShaderManager::ShaderManager() {}
ShaderManager::~ShaderManager() {
« no previous file with comments | « gpu/command_buffer/service/shader_manager.h ('k') | gpu/command_buffer/service/shader_manager_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698