| 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 81a0cb7cd4d0da156ab2d1896eb385b0bef68a10..0784c3ad62c5b2ba848f20dfb56801c5e45ea1a9 100644
|
| --- a/gpu/command_buffer/service/program_manager.cc
|
| +++ b/gpu/command_buffer/service/program_manager.cc
|
| @@ -96,14 +96,14 @@ bool GetUniformNameSansElement(
|
|
|
| } // anonymous namespace.
|
|
|
| -ProgramManager::ProgramInfo::UniformInfo::UniformInfo()
|
| +Program::UniformInfo::UniformInfo()
|
| : size(0),
|
| type(GL_NONE),
|
| fake_location_base(0),
|
| is_array(false) {
|
| }
|
|
|
| -ProgramManager::ProgramInfo::UniformInfo::UniformInfo(
|
| +Program::UniformInfo::UniformInfo(
|
| GLsizei _size,
|
| GLenum _type,
|
| int _fake_location_base,
|
| @@ -115,7 +115,7 @@ ProgramManager::ProgramInfo::UniformInfo::UniformInfo(
|
| name(_name) {
|
| }
|
|
|
| -ProgramManager::ProgramInfo::UniformInfo::~UniformInfo() {}
|
| +Program::UniformInfo::~UniformInfo() {}
|
|
|
| bool ProgramManager::IsInvalidPrefix(const char* name, size_t length) {
|
| static const char kInvalidPrefix[] = { 'g', 'l', '_' };
|
| @@ -123,7 +123,7 @@ bool ProgramManager::IsInvalidPrefix(const char* name, size_t length) {
|
| memcmp(name, kInvalidPrefix, sizeof(kInvalidPrefix)) == 0);
|
| }
|
|
|
| -ProgramManager::ProgramInfo::ProgramInfo(
|
| +Program::Program(
|
| ProgramManager* manager, GLuint service_id)
|
| : manager_(manager),
|
| use_count_(0),
|
| @@ -138,7 +138,7 @@ ProgramManager::ProgramInfo::ProgramInfo(
|
| manager_->StartTracking(this);
|
| }
|
|
|
| -void ProgramManager::ProgramInfo::Reset() {
|
| +void Program::Reset() {
|
| valid_ = false;
|
| link_status_ = false;
|
| num_uniforms_ = 0;
|
| @@ -150,7 +150,7 @@ void ProgramManager::ProgramInfo::Reset() {
|
| attrib_location_to_index_map_.clear();
|
| }
|
|
|
| -std::string ProgramManager::ProgramInfo::ProcessLogInfo(
|
| +std::string Program::ProcessLogInfo(
|
| const std::string& log) {
|
| std::string output;
|
| re2::StringPiece input(log);
|
| @@ -173,7 +173,7 @@ std::string ProgramManager::ProgramInfo::ProcessLogInfo(
|
| return output + input.as_string();
|
| }
|
|
|
| -void ProgramManager::ProgramInfo::UpdateLogInfo() {
|
| +void Program::UpdateLogInfo() {
|
| GLint max_len = 0;
|
| glGetProgramiv(service_id_, GL_INFO_LOG_LENGTH, &max_len);
|
| if (max_len == 0) {
|
| @@ -189,7 +189,7 @@ void ProgramManager::ProgramInfo::UpdateLogInfo() {
|
| set_log_info(ProcessLogInfo(log).c_str());
|
| }
|
|
|
| -void ProgramManager::ProgramInfo::ClearUniforms(
|
| +void Program::ClearUniforms(
|
| std::vector<uint8>* zero_buffer) {
|
| DCHECK(zero_buffer);
|
| if (uniforms_cleared_) {
|
| @@ -285,7 +285,7 @@ struct UniformDataComparer {
|
|
|
| } // anonymous namespace
|
|
|
| -void ProgramManager::ProgramInfo::Update() {
|
| +void Program::Update() {
|
| Reset();
|
| UpdateLogInfo();
|
| link_status_ = true;
|
| @@ -305,7 +305,7 @@ void ProgramManager::ProgramInfo::Update() {
|
| service_id_, ii, max_len, &length, &size, &type, name_buffer.get());
|
| DCHECK(max_len == 0 || length < max_len);
|
| DCHECK(length == 0 || name_buffer[length] == '\0');
|
| - if (!IsInvalidPrefix(name_buffer.get(), length)) {
|
| + if (!ProgramManager::IsInvalidPrefix(name_buffer.get(), length)) {
|
| std::string name;
|
| std::string original_name;
|
| GetCorrectedVariableInfo(
|
| @@ -316,7 +316,7 @@ void ProgramManager::ProgramInfo::Update() {
|
| max_location = location;
|
| }
|
| attrib_infos_.push_back(
|
| - VertexAttribInfo(size, type, original_name, location));
|
| + VertexAttrib(size, type, original_name, location));
|
| max_attrib_name_length_ = std::max(
|
| max_attrib_name_length_, static_cast<GLsizei>(original_name.size()));
|
| }
|
| @@ -328,7 +328,7 @@ void ProgramManager::ProgramInfo::Update() {
|
| attrib_location_to_index_map_[ii] = -1;
|
| }
|
| for (size_t ii = 0; ii < attrib_infos_.size(); ++ii) {
|
| - const VertexAttribInfo& info = attrib_infos_[ii];
|
| + const VertexAttrib& info = attrib_infos_[ii];
|
| attrib_location_to_index_map_[info.location] = ii;
|
| }
|
|
|
| @@ -337,7 +337,7 @@ void ProgramManager::ProgramInfo::Update() {
|
| switches::kEnableGPUServiceLoggingGPU)) {
|
| DLOG(INFO) << "----: attribs for service_id: " << service_id();
|
| for (size_t ii = 0; ii < attrib_infos_.size(); ++ii) {
|
| - const VertexAttribInfo& info = attrib_infos_[ii];
|
| + const VertexAttrib& info = attrib_infos_[ii];
|
| DLOG(INFO) << ii << ": loc = " << info.location
|
| << ", size = " << info.size
|
| << ", type = " << GLES2Util::GetStringEnum(info.type)
|
| @@ -362,7 +362,7 @@ void ProgramManager::ProgramInfo::Update() {
|
| &data.size, &data.type, name_buffer.get());
|
| DCHECK(max_len == 0 || length < max_len);
|
| DCHECK(length == 0 || name_buffer[length] == '\0');
|
| - if (!IsInvalidPrefix(name_buffer.get(), length)) {
|
| + if (!ProgramManager::IsInvalidPrefix(name_buffer.get(), length)) {
|
| data.queried_name = std::string(name_buffer.get());
|
| GetCorrectedVariableInfo(
|
| true, name_buffer.get(), &data.corrected_name, &data.original_name,
|
| @@ -429,7 +429,7 @@ void ProgramManager::ProgramInfo::Update() {
|
| valid_ = true;
|
| }
|
|
|
| -void ProgramManager::ProgramInfo::ExecuteBindAttribLocationCalls() {
|
| +void Program::ExecuteBindAttribLocationCalls() {
|
| for (LocationMap::const_iterator it = bind_attrib_location_map_.begin();
|
| it != bind_attrib_location_map_.end(); ++it) {
|
| const std::string* mapped_name = GetAttribMappedName(it->first);
|
| @@ -438,7 +438,7 @@ void ProgramManager::ProgramInfo::ExecuteBindAttribLocationCalls() {
|
| }
|
| }
|
|
|
| -void ProgramManager::DoCompileShader(ShaderManager::ShaderInfo* info,
|
| +void ProgramManager::DoCompileShader(Shader* info,
|
| ShaderTranslator* translator,
|
| FeatureInfo* feature_info) {
|
| TimeTicks before = TimeTicks::HighResNow();
|
| @@ -466,7 +466,7 @@ void ProgramManager::DoCompileShader(ShaderManager::ShaderInfo* info,
|
| }
|
|
|
| void ProgramManager::ForceCompileShader(const std::string* source,
|
| - ShaderManager::ShaderInfo* info,
|
| + Shader* info,
|
| ShaderTranslator* translator,
|
| FeatureInfo* feature_info) {
|
| info->FlagSourceAsCompiled(true);
|
| @@ -529,7 +529,7 @@ void ProgramManager::ForceCompileShader(const std::string* source,
|
| }
|
| }
|
|
|
| -bool ProgramManager::ProgramInfo::Link(ShaderManager* manager,
|
| +bool Program::Link(ShaderManager* manager,
|
| ShaderTranslator* vertex_translator,
|
| ShaderTranslator* fragment_translator,
|
| FeatureInfo* feature_info) {
|
| @@ -565,11 +565,11 @@ bool ProgramManager::ProgramInfo::Link(ShaderManager* manager,
|
|
|
| if (link) {
|
| // compile our shaders if they're pending
|
| - const int kShaders = ProgramManager::ProgramInfo::kMaxAttachedShaders;
|
| + const int kShaders = Program::kMaxAttachedShaders;
|
| for (int i = 0; i < kShaders; ++i) {
|
| - ShaderManager::ShaderInfo* info = attached_shaders_[i].get();
|
| + Shader* info = attached_shaders_[i].get();
|
| if (info->compilation_status() ==
|
| - ShaderManager::ShaderInfo::PENDING_DEFERRED_COMPILE) {
|
| + Shader::PENDING_DEFERRED_COMPILE) {
|
| ShaderTranslator* translator = ShaderIndexToTranslator(
|
| i,
|
| vertex_translator,
|
| @@ -625,7 +625,7 @@ bool ProgramManager::ProgramInfo::Link(ShaderManager* manager,
|
| return success == GL_TRUE;
|
| }
|
|
|
| -void ProgramManager::ProgramInfo::Validate() {
|
| +void Program::Validate() {
|
| if (!IsValid()) {
|
| set_log_info("program not linked");
|
| return;
|
| @@ -634,7 +634,7 @@ void ProgramManager::ProgramInfo::Validate() {
|
| UpdateLogInfo();
|
| }
|
|
|
| -GLint ProgramManager::ProgramInfo::GetUniformFakeLocation(
|
| +GLint Program::GetUniformFakeLocation(
|
| const std::string& name) const {
|
| bool getting_array_location = false;
|
| size_t open_pos = std::string::npos;
|
| @@ -667,10 +667,10 @@ GLint ProgramManager::ProgramInfo::GetUniformFakeLocation(
|
| return -1;
|
| }
|
|
|
| -GLint ProgramManager::ProgramInfo::GetAttribLocation(
|
| +GLint Program::GetAttribLocation(
|
| const std::string& name) const {
|
| for (GLuint ii = 0; ii < attrib_infos_.size(); ++ii) {
|
| - const VertexAttribInfo& info = attrib_infos_[ii];
|
| + const VertexAttrib& info = attrib_infos_[ii];
|
| if (info.name == name) {
|
| return info.location;
|
| }
|
| @@ -678,8 +678,8 @@ GLint ProgramManager::ProgramInfo::GetAttribLocation(
|
| return -1;
|
| }
|
|
|
| -const ProgramManager::ProgramInfo::UniformInfo*
|
| - ProgramManager::ProgramInfo::GetUniformInfoByFakeLocation(
|
| +const Program::UniformInfo*
|
| + Program::GetUniformInfoByFakeLocation(
|
| GLint fake_location, GLint* real_location, GLint* array_index) const {
|
| DCHECK(real_location);
|
| DCHECK(array_index);
|
| @@ -704,10 +704,10 @@ const ProgramManager::ProgramInfo::UniformInfo*
|
| return NULL;
|
| }
|
|
|
| -const std::string* ProgramManager::ProgramInfo::GetAttribMappedName(
|
| +const std::string* Program::GetAttribMappedName(
|
| const std::string& original_name) const {
|
| for (int ii = 0; ii < kMaxAttachedShaders; ++ii) {
|
| - ShaderManager::ShaderInfo* shader_info = attached_shaders_[ii].get();
|
| + Shader* shader_info = attached_shaders_[ii].get();
|
| if (shader_info) {
|
| const std::string* mapped_name =
|
| shader_info->GetAttribMappedName(original_name);
|
| @@ -718,10 +718,10 @@ const std::string* ProgramManager::ProgramInfo::GetAttribMappedName(
|
| return NULL;
|
| }
|
|
|
| -const std::string* ProgramManager::ProgramInfo::GetOriginalNameFromHashedName(
|
| +const std::string* Program::GetOriginalNameFromHashedName(
|
| const std::string& hashed_name) const {
|
| for (int ii = 0; ii < kMaxAttachedShaders; ++ii) {
|
| - ShaderManager::ShaderInfo* shader_info = attached_shaders_[ii].get();
|
| + Shader* shader_info = attached_shaders_[ii].get();
|
| if (shader_info) {
|
| const std::string* original_name =
|
| shader_info->GetOriginalNameFromHashedName(hashed_name);
|
| @@ -732,7 +732,7 @@ const std::string* ProgramManager::ProgramInfo::GetOriginalNameFromHashedName(
|
| return NULL;
|
| }
|
|
|
| -bool ProgramManager::ProgramInfo::SetUniformLocationBinding(
|
| +bool Program::SetUniformLocationBinding(
|
| const std::string& name, GLint location) {
|
| std::string short_name;
|
| int element_index = 0;
|
| @@ -747,7 +747,7 @@ bool ProgramManager::ProgramInfo::SetUniformLocationBinding(
|
|
|
| // Note: This is only valid to call right after a program has been linked
|
| // successfully.
|
| -void ProgramManager::ProgramInfo::GetCorrectedVariableInfo(
|
| +void Program::GetCorrectedVariableInfo(
|
| bool use_uniforms,
|
| const std::string& name, std::string* corrected_name,
|
| std::string* original_name,
|
| @@ -760,9 +760,9 @@ void ProgramManager::ProgramInfo::GetCorrectedVariableInfo(
|
| for (int jj = 0; jj < 2; ++jj) {
|
| std::string test_name(name + ((jj == 1) ? kArraySpec : ""));
|
| for (int ii = 0; ii < kMaxAttachedShaders; ++ii) {
|
| - ShaderManager::ShaderInfo* shader_info = attached_shaders_[ii].get();
|
| + Shader* shader_info = attached_shaders_[ii].get();
|
| if (shader_info) {
|
| - const ShaderManager::ShaderInfo::VariableInfo* variable_info =
|
| + const Shader::VariableInfo* variable_info =
|
| use_uniforms ? shader_info->GetUniformInfo(test_name) :
|
| shader_info->GetAttribInfo(test_name);
|
| // Note: There is an assuption here that if an attrib is defined in more
|
| @@ -782,7 +782,7 @@ void ProgramManager::ProgramInfo::GetCorrectedVariableInfo(
|
| *original_name = name;
|
| }
|
|
|
| -bool ProgramManager::ProgramInfo::AddUniformInfo(
|
| +bool Program::AddUniformInfo(
|
| GLsizei size, GLenum type, GLint location, GLint fake_base_location,
|
| const std::string& name, const std::string& original_name,
|
| size_t* next_available_index) {
|
| @@ -852,8 +852,8 @@ bool ProgramManager::ProgramInfo::AddUniformInfo(
|
| return true;
|
| }
|
|
|
| -const ProgramManager::ProgramInfo::UniformInfo*
|
| - ProgramManager::ProgramInfo::GetUniformInfo(
|
| +const Program::UniformInfo*
|
| + Program::GetUniformInfo(
|
| GLint index) const {
|
| if (static_cast<size_t>(index) >= uniform_infos_.size()) {
|
| return NULL;
|
| @@ -863,7 +863,7 @@ const ProgramManager::ProgramInfo::UniformInfo*
|
| return info.IsValid() ? &info : NULL;
|
| }
|
|
|
| -bool ProgramManager::ProgramInfo::SetSamplers(
|
| +bool Program::SetSamplers(
|
| GLint num_texture_units, GLint fake_location,
|
| GLsizei count, const GLint* value) {
|
| if (fake_location < 0) {
|
| @@ -894,7 +894,7 @@ bool ProgramManager::ProgramInfo::SetSamplers(
|
| return true;
|
| }
|
|
|
| -void ProgramManager::ProgramInfo::GetProgramiv(GLenum pname, GLint* params) {
|
| +void Program::GetProgramiv(GLenum pname, GLint* params) {
|
| switch (pname) {
|
| case GL_ACTIVE_ATTRIBUTES:
|
| *params = attrib_infos_.size();
|
| @@ -933,23 +933,23 @@ void ProgramManager::ProgramInfo::GetProgramiv(GLenum pname, GLint* params) {
|
| }
|
| }
|
|
|
| -bool ProgramManager::ProgramInfo::AttachShader(
|
| +bool Program::AttachShader(
|
| ShaderManager* shader_manager,
|
| - ShaderManager::ShaderInfo* info) {
|
| + Shader* info) {
|
| DCHECK(shader_manager);
|
| DCHECK(info);
|
| int index = ShaderTypeToIndex(info->shader_type());
|
| if (attached_shaders_[index] != NULL) {
|
| return false;
|
| }
|
| - attached_shaders_[index] = ShaderManager::ShaderInfo::Ref(info);
|
| + attached_shaders_[index] = scoped_refptr<Shader>(info);
|
| shader_manager->UseShader(info);
|
| return true;
|
| }
|
|
|
| -bool ProgramManager::ProgramInfo::DetachShader(
|
| +bool Program::DetachShader(
|
| ShaderManager* shader_manager,
|
| - ShaderManager::ShaderInfo* info) {
|
| + Shader* info) {
|
| DCHECK(shader_manager);
|
| DCHECK(info);
|
| if (attached_shaders_[ShaderTypeToIndex(info->shader_type())].get() != info) {
|
| @@ -960,7 +960,7 @@ bool ProgramManager::ProgramInfo::DetachShader(
|
| return true;
|
| }
|
|
|
| -void ProgramManager::ProgramInfo::DetachShaders(ShaderManager* shader_manager) {
|
| +void Program::DetachShaders(ShaderManager* shader_manager) {
|
| DCHECK(shader_manager);
|
| for (int ii = 0; ii < kMaxAttachedShaders; ++ii) {
|
| if (attached_shaders_[ii]) {
|
| @@ -969,7 +969,7 @@ void ProgramManager::ProgramInfo::DetachShaders(ShaderManager* shader_manager) {
|
| }
|
| }
|
|
|
| -bool ProgramManager::ProgramInfo::CanLink() const {
|
| +bool Program::CanLink() const {
|
| for (int ii = 0; ii < kMaxAttachedShaders; ++ii) {
|
| if (!attached_shaders_[ii] || !attached_shaders_[ii]->IsValid()) {
|
| return false;
|
| @@ -978,7 +978,7 @@ bool ProgramManager::ProgramInfo::CanLink() const {
|
| return true;
|
| }
|
|
|
| -bool ProgramManager::ProgramInfo::DetectAttribLocationBindingConflicts() const {
|
| +bool Program::DetectAttribLocationBindingConflicts() const {
|
| std::set<GLint> location_binding_used;
|
| for (LocationMap::const_iterator it = bind_attrib_location_map_.begin();
|
| it != bind_attrib_location_map_.end(); ++it) {
|
| @@ -1007,7 +1007,7 @@ static uint32 ComputeOffset(const void* start, const void* position) {
|
| static_cast<const uint8*>(start);
|
| }
|
|
|
| -void ProgramManager::ProgramInfo::GetProgramInfo(
|
| +void Program::GetProgram(
|
| ProgramManager* manager, CommonDecoder::Bucket* bucket) const {
|
| // NOTE: It seems to me the math in here does not need check for overflow
|
| // because the data being calucated from has various small limits. The max
|
| @@ -1017,7 +1017,7 @@ void ProgramManager::ProgramInfo::GetProgramInfo(
|
| uint32 total_string_size = 0;
|
|
|
| for (size_t ii = 0; ii < attrib_infos_.size(); ++ii) {
|
| - const VertexAttribInfo& info = attrib_infos_[ii];
|
| + const VertexAttrib& info = attrib_infos_[ii];
|
| num_locations += 1;
|
| total_string_size += info.name.size();
|
| }
|
| @@ -1055,7 +1055,7 @@ void ProgramManager::ProgramInfo::GetProgramInfo(
|
| header->num_uniforms = num_uniforms_;
|
|
|
| for (size_t ii = 0; ii < attrib_infos_.size(); ++ii) {
|
| - const VertexAttribInfo& info = attrib_infos_[ii];
|
| + const VertexAttrib& info = attrib_infos_[ii];
|
| inputs->size = info.size;
|
| inputs->type = info.type;
|
| inputs->location_offset = ComputeOffset(header, locations);
|
| @@ -1088,7 +1088,7 @@ void ProgramManager::ProgramInfo::GetProgramInfo(
|
| DCHECK_EQ(ComputeOffset(header, strings), size);
|
| }
|
|
|
| -ProgramManager::ProgramInfo::~ProgramInfo() {
|
| +Program::~Program() {
|
| if (manager_) {
|
| if (manager_->have_context_) {
|
| glDeleteProgram(service_id());
|
| @@ -1116,25 +1116,26 @@ void ProgramManager::Destroy(bool have_context) {
|
| program_infos_.clear();
|
| }
|
|
|
| -void ProgramManager::StartTracking(ProgramManager::ProgramInfo* /* program */) {
|
| +void ProgramManager::StartTracking(Program* /* program */) {
|
| ++program_info_count_;
|
| }
|
|
|
| -void ProgramManager::StopTracking(ProgramManager::ProgramInfo* /* program */) {
|
| +void ProgramManager::StopTracking(Program* /* program */) {
|
| --program_info_count_;
|
| }
|
|
|
| -ProgramManager::ProgramInfo* ProgramManager::CreateProgramInfo(
|
| +Program* ProgramManager::CreateProgram(
|
| GLuint client_id, GLuint service_id) {
|
| std::pair<ProgramInfoMap::iterator, bool> result =
|
| program_infos_.insert(
|
| std::make_pair(client_id,
|
| - ProgramInfo::Ref(new ProgramInfo(this, service_id))));
|
| + scoped_refptr<Program>(
|
| + new Program(this, service_id))));
|
| DCHECK(result.second);
|
| return result.first->second;
|
| }
|
|
|
| -ProgramManager::ProgramInfo* ProgramManager::GetProgramInfo(GLuint client_id) {
|
| +Program* ProgramManager::GetProgram(GLuint client_id) {
|
| ProgramInfoMap::iterator it = program_infos_.find(client_id);
|
| return it != program_infos_.end() ? it->second : NULL;
|
| }
|
| @@ -1155,7 +1156,7 @@ ProgramCache* ProgramManager::program_cache() const {
|
| return program_cache_;
|
| }
|
|
|
| -bool ProgramManager::IsOwned(ProgramManager::ProgramInfo* info) {
|
| +bool ProgramManager::IsOwned(Program* info) {
|
| for (ProgramInfoMap::iterator it = program_infos_.begin();
|
| it != program_infos_.end(); ++it) {
|
| if (it->second.get() == info) {
|
| @@ -1166,7 +1167,7 @@ bool ProgramManager::IsOwned(ProgramManager::ProgramInfo* info) {
|
| }
|
|
|
| void ProgramManager::RemoveProgramInfoIfUnused(
|
| - ShaderManager* shader_manager, ProgramInfo* info) {
|
| + ShaderManager* shader_manager, Program* info) {
|
| DCHECK(shader_manager);
|
| DCHECK(info);
|
| DCHECK(IsOwned(info));
|
| @@ -1185,7 +1186,7 @@ void ProgramManager::RemoveProgramInfoIfUnused(
|
|
|
| void ProgramManager::MarkAsDeleted(
|
| ShaderManager* shader_manager,
|
| - ProgramManager::ProgramInfo* info) {
|
| + Program* info) {
|
| DCHECK(shader_manager);
|
| DCHECK(info);
|
| DCHECK(IsOwned(info));
|
| @@ -1193,7 +1194,7 @@ void ProgramManager::MarkAsDeleted(
|
| RemoveProgramInfoIfUnused(shader_manager, info);
|
| }
|
|
|
| -void ProgramManager::UseProgram(ProgramManager::ProgramInfo* info) {
|
| +void ProgramManager::UseProgram(Program* info) {
|
| DCHECK(info);
|
| DCHECK(IsOwned(info));
|
| info->IncUseCount();
|
| @@ -1202,7 +1203,7 @@ void ProgramManager::UseProgram(ProgramManager::ProgramInfo* info) {
|
|
|
| void ProgramManager::UnuseProgram(
|
| ShaderManager* shader_manager,
|
| - ProgramManager::ProgramInfo* info) {
|
| + Program* info) {
|
| DCHECK(shader_manager);
|
| DCHECK(info);
|
| DCHECK(IsOwned(info));
|
| @@ -1210,7 +1211,7 @@ void ProgramManager::UnuseProgram(
|
| RemoveProgramInfoIfUnused(shader_manager, info);
|
| }
|
|
|
| -void ProgramManager::ClearUniforms(ProgramManager::ProgramInfo* info) {
|
| +void ProgramManager::ClearUniforms(Program* info) {
|
| DCHECK(info);
|
| if (!disable_workarounds_) {
|
| info->ClearUniforms(&zero_);
|
|
|