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

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

Issue 566023002: Clean up interfaces between Shader / ShaderTranslator / ANGLE side. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 months 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
Index: gpu/command_buffer/service/program_manager.cc
diff --git a/gpu/command_buffer/service/program_manager.cc b/gpu/command_buffer/service/program_manager.cc
index ec304dbb0f40554457d491ba82173519123450d8..4dd4bc4d68f4076c8371127fac2f5a45e317f6e8 100644
--- a/gpu/command_buffer/service/program_manager.cc
+++ b/gpu/command_buffer/service/program_manager.cc
@@ -521,65 +521,6 @@ void Program::ExecuteBindAttribLocationCalls() {
}
}
-void ProgramManager::DoCompileShader(
- Shader* shader,
- ShaderTranslator* translator,
- ProgramManager::TranslatedShaderSourceType translated_shader_source_type) {
- // Translate GL ES 2.0 shader to Desktop GL shader and pass that to
- // glShaderSource and then glCompileShader.
- const std::string* source = shader->source();
- const char* shader_src = source ? source->c_str() : "";
- if (translator) {
- if (!translator->Translate(shader_src)) {
- shader->SetStatus(false, translator->info_log(), NULL);
- return;
- }
- shader_src = translator->translated_shader();
- if (translated_shader_source_type != kANGLE)
- shader->UpdateTranslatedSource(shader_src);
- }
-
- glShaderSource(shader->service_id(), 1, &shader_src, NULL);
- glCompileShader(shader->service_id());
- if (translated_shader_source_type == kANGLE) {
- GLint max_len = 0;
- glGetShaderiv(shader->service_id(),
- GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE,
- &max_len);
- scoped_ptr<char[]> temp(new char[max_len]);
- GLint len = 0;
- glGetTranslatedShaderSourceANGLE(
- shader->service_id(), max_len, &len, temp.get());
- DCHECK(max_len == 0 || len < max_len);
- DCHECK(len == 0 || temp[len] == '\0');
- shader->UpdateTranslatedSource(max_len ? temp.get() : NULL);
- }
-
- GLint status = GL_FALSE;
- glGetShaderiv(shader->service_id(), GL_COMPILE_STATUS, &status);
- if (status) {
- shader->SetStatus(true, "", translator);
- } else {
- // We cannot reach here if we are using the shader translator.
- // All invalid shaders must be rejected by the translator.
- // All translated shaders must compile.
- GLint max_len = 0;
- glGetShaderiv(shader->service_id(), GL_INFO_LOG_LENGTH, &max_len);
- scoped_ptr<char[]> temp(new char[max_len]);
- GLint len = 0;
- glGetShaderInfoLog(shader->service_id(), max_len, &len, temp.get());
- DCHECK(max_len == 0 || len < max_len);
- DCHECK(len == 0 || temp[len] == '\0');
- shader->SetStatus(false, std::string(temp.get(), len).c_str(), NULL);
- LOG_IF(ERROR, translator)
- << "Shader translator allowed/produced an invalid shader "
- << "unless the driver is buggy:"
- << "\n--original-shader--\n" << (source ? *source : std::string())
- << "\n--translated-shader--\n" << shader_src << "\n--info-log--\n"
- << *shader->log_info();
- }
-}
-
bool Program::Link(ShaderManager* manager,
ShaderTranslator* vertex_translator,
ShaderTranslator* fragment_translator,
@@ -623,12 +564,12 @@ bool Program::Link(ShaderManager* manager,
bool link = true;
ProgramCache* cache = manager_->program_cache_;
if (cache) {
- DCHECK(attached_shaders_[0]->signature_source() &&
- attached_shaders_[1]->signature_source());
+ DCHECK(!attached_shaders_[0]->signature_source().empty() &&
+ !attached_shaders_[1]->signature_source().empty());
ProgramCache::LinkedProgramStatus status = cache->GetLinkedProgramStatus(
- *attached_shaders_[0]->signature_source(),
+ attached_shaders_[0]->signature_source(),
vertex_translator,
- *attached_shaders_[1]->signature_source(),
+ attached_shaders_[1]->signature_source(),
fragment_translator,
&bind_attrib_location_map_);
@@ -1041,7 +982,7 @@ void Program::DetachShaders(ShaderManager* shader_manager) {
bool Program::CanLink() const {
for (int ii = 0; ii < kMaxAttachedShaders; ++ii) {
- if (!attached_shaders_[ii].get() || !attached_shaders_[ii]->IsValid()) {
+ if (!attached_shaders_[ii].get() || !attached_shaders_[ii]->valid()) {
return false;
}
}
@@ -1055,7 +996,7 @@ bool Program::DetectAttribLocationBindingConflicts() const {
// Find out if an attribute is declared in this program's shaders.
bool active = false;
for (int ii = 0; ii < kMaxAttachedShaders; ++ii) {
- if (!attached_shaders_[ii].get() || !attached_shaders_[ii]->IsValid())
+ if (!attached_shaders_[ii].get() || !attached_shaders_[ii]->valid())
continue;
if (attached_shaders_[ii]->GetAttribInfo(it->first)) {
active = true;
« no previous file with comments | « gpu/command_buffer/service/program_manager.h ('k') | gpu/command_buffer/service/program_manager_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698