OLD | NEW |
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/client/share_group.h" | 5 #include "gpu/command_buffer/client/share_group.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "gpu/command_buffer/client/atomicops.h" | 8 #include "base/synchronization/lock.h" |
9 #include "gpu/command_buffer/client/gles2_implementation.h" | 9 #include "gpu/command_buffer/client/gles2_implementation.h" |
10 #include "gpu/command_buffer/client/program_info_manager.h" | 10 #include "gpu/command_buffer/client/program_info_manager.h" |
11 #include "gpu/command_buffer/common/id_allocator.h" | 11 #include "gpu/command_buffer/common/id_allocator.h" |
12 | 12 |
13 namespace gpu { | 13 namespace gpu { |
14 namespace gles2 { | 14 namespace gles2 { |
15 | 15 |
16 COMPILE_ASSERT(gpu::kInvalidResource == 0, | 16 COMPILE_ASSERT(gpu::kInvalidResource == 0, |
17 INVALID_RESOURCE_NOT_0_AS_GL_EXPECTS); | 17 INVALID_RESOURCE_NOT_0_AS_GL_EXPECTS); |
18 | 18 |
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
150 ThreadSafeIdHandlerWrapper(IdHandlerInterface* id_handler) | 150 ThreadSafeIdHandlerWrapper(IdHandlerInterface* id_handler) |
151 : id_handler_(id_handler) { | 151 : id_handler_(id_handler) { |
152 } | 152 } |
153 virtual ~ThreadSafeIdHandlerWrapper() { } | 153 virtual ~ThreadSafeIdHandlerWrapper() { } |
154 | 154 |
155 // Overridden from IdHandlerInterface. | 155 // Overridden from IdHandlerInterface. |
156 virtual void MakeIds(GLES2Implementation* gl_impl, | 156 virtual void MakeIds(GLES2Implementation* gl_impl, |
157 GLuint id_offset, | 157 GLuint id_offset, |
158 GLsizei n, | 158 GLsizei n, |
159 GLuint* ids) OVERRIDE { | 159 GLuint* ids) OVERRIDE { |
160 AutoLock auto_lock(lock_); | 160 base::AutoLock auto_lock(lock_); |
161 id_handler_->MakeIds(gl_impl, id_offset, n, ids); | 161 id_handler_->MakeIds(gl_impl, id_offset, n, ids); |
162 } | 162 } |
163 | 163 |
164 // Overridden from IdHandlerInterface. | 164 // Overridden from IdHandlerInterface. |
165 virtual bool FreeIds(GLES2Implementation* gl_impl, | 165 virtual bool FreeIds(GLES2Implementation* gl_impl, |
166 GLsizei n, | 166 GLsizei n, |
167 const GLuint* ids, | 167 const GLuint* ids, |
168 DeleteFn delete_fn) OVERRIDE { | 168 DeleteFn delete_fn) OVERRIDE { |
169 AutoLock auto_lock(lock_); | 169 base::AutoLock auto_lock(lock_); |
170 return id_handler_->FreeIds(gl_impl, n, ids, delete_fn); | 170 return id_handler_->FreeIds(gl_impl, n, ids, delete_fn); |
171 } | 171 } |
172 | 172 |
173 // Overridden from IdHandlerInterface. | 173 // Overridden from IdHandlerInterface. |
174 virtual bool MarkAsUsedForBind(GLuint id) OVERRIDE { | 174 virtual bool MarkAsUsedForBind(GLuint id) OVERRIDE { |
175 AutoLock auto_lock(lock_); | 175 base::AutoLock auto_lock(lock_); |
176 return id_handler_->MarkAsUsedForBind(id); | 176 return id_handler_->MarkAsUsedForBind(id); |
177 } | 177 } |
178 | 178 |
179 private: | 179 private: |
180 scoped_ptr<IdHandlerInterface> id_handler_; | 180 scoped_ptr<IdHandlerInterface> id_handler_; |
181 Lock lock_; | 181 base::Lock lock_; |
182 }; | 182 }; |
183 | 183 |
184 ShareGroup::ShareGroup(bool bind_generates_resource) | 184 ShareGroup::ShareGroup(bool bind_generates_resource) |
185 : bind_generates_resource_(bind_generates_resource) { | 185 : bind_generates_resource_(bind_generates_resource) { |
186 if (bind_generates_resource) { | 186 if (bind_generates_resource) { |
187 for (int i = 0; i < id_namespaces::kNumIdNamespaces; ++i) { | 187 for (int i = 0; i < id_namespaces::kNumIdNamespaces; ++i) { |
188 if (i == id_namespaces::kProgramsAndShaders) { | 188 if (i == id_namespaces::kProgramsAndShaders) { |
189 id_handlers_[i].reset(new ThreadSafeIdHandlerWrapper( | 189 id_handlers_[i].reset(new ThreadSafeIdHandlerWrapper( |
190 new NonReusedIdHandler())); | 190 new NonReusedIdHandler())); |
191 } else { | 191 } else { |
(...skipping 16 matching lines...) Expand all Loading... |
208 } | 208 } |
209 | 209 |
210 void ShareGroup::set_program_info_manager(ProgramInfoManager* manager) { | 210 void ShareGroup::set_program_info_manager(ProgramInfoManager* manager) { |
211 program_info_manager_.reset(manager); | 211 program_info_manager_.reset(manager); |
212 } | 212 } |
213 | 213 |
214 ShareGroup::~ShareGroup() {} | 214 ShareGroup::~ShareGroup() {} |
215 | 215 |
216 } // namespace gles2 | 216 } // namespace gles2 |
217 } // namespace gpu | 217 } // namespace gpu |
OLD | NEW |