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

Side by Side Diff: gpu/command_buffer/service/shader_manager.cc

Issue 16293004: Update gpu/ to use scoped_refptr<T>::get() rather than implicit "operator T*" (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased Created 7 years, 6 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 #include "gpu/command_buffer/service/shader_manager.h" 5 #include "gpu/command_buffer/service/shader_manager.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/string_util.h" 10 #include "base/string_util.h"
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
86 86
87 ShaderManager::ShaderManager() {} 87 ShaderManager::ShaderManager() {}
88 88
89 ShaderManager::~ShaderManager() { 89 ShaderManager::~ShaderManager() {
90 DCHECK(shaders_.empty()); 90 DCHECK(shaders_.empty());
91 } 91 }
92 92
93 void ShaderManager::Destroy(bool have_context) { 93 void ShaderManager::Destroy(bool have_context) {
94 while (!shaders_.empty()) { 94 while (!shaders_.empty()) {
95 if (have_context) { 95 if (have_context) {
96 Shader* shader = shaders_.begin()->second; 96 Shader* shader = shaders_.begin()->second.get();
97 if (!shader->IsDeleted()) { 97 if (!shader->IsDeleted()) {
98 glDeleteShader(shader->service_id()); 98 glDeleteShader(shader->service_id());
99 shader->MarkAsDeleted(); 99 shader->MarkAsDeleted();
100 } 100 }
101 } 101 }
102 shaders_.erase(shaders_.begin()); 102 shaders_.erase(shaders_.begin());
103 } 103 }
104 } 104 }
105 105
106 Shader* ShaderManager::CreateShader( 106 Shader* ShaderManager::CreateShader(
107 GLuint client_id, 107 GLuint client_id,
108 GLuint service_id, 108 GLuint service_id,
109 GLenum shader_type) { 109 GLenum shader_type) {
110 std::pair<ShaderMap::iterator, bool> result = 110 std::pair<ShaderMap::iterator, bool> result =
111 shaders_.insert(std::make_pair( 111 shaders_.insert(std::make_pair(
112 client_id, scoped_refptr<Shader>( 112 client_id, scoped_refptr<Shader>(
113 new Shader(service_id, shader_type)))); 113 new Shader(service_id, shader_type))));
114 DCHECK(result.second); 114 DCHECK(result.second);
115 return result.first->second; 115 return result.first->second.get();
116 } 116 }
117 117
118 Shader* ShaderManager::GetShader(GLuint client_id) { 118 Shader* ShaderManager::GetShader(GLuint client_id) {
119 ShaderMap::iterator it = shaders_.find(client_id); 119 ShaderMap::iterator it = shaders_.find(client_id);
120 return it != shaders_.end() ? it->second : NULL; 120 return it != shaders_.end() ? it->second : NULL;
121 } 121 }
122 122
123 bool ShaderManager::GetClientId(GLuint service_id, GLuint* client_id) const { 123 bool ShaderManager::GetClientId(GLuint service_id, GLuint* client_id) const {
124 // This doesn't need to be fast. It's only used during slow queries. 124 // This doesn't need to be fast. It's only used during slow queries.
125 for (ShaderMap::const_iterator it = shaders_.begin(); 125 for (ShaderMap::const_iterator it = shaders_.begin();
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
174 DCHECK(shader); 174 DCHECK(shader);
175 DCHECK(IsOwned(shader)); 175 DCHECK(IsOwned(shader));
176 shader->DecUseCount(); 176 shader->DecUseCount();
177 RemoveShader(shader); 177 RemoveShader(shader);
178 } 178 }
179 179
180 } // namespace gles2 180 } // namespace gles2
181 } // namespace gpu 181 } // namespace gpu
182 182
183 183
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/renderbuffer_manager_unittest.cc ('k') | gpu/command_buffer/service/shader_manager_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698