Chromium Code Reviews

Side by Side Diff: gpu/command_buffer/service/context_group.h

Issue 812543002: Update from https://crrev.com/308331 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff |
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 #ifndef GPU_COMMAND_BUFFER_SERVICE_CONTEXT_GROUP_H_ 5 #ifndef GPU_COMMAND_BUFFER_SERVICE_CONTEXT_GROUP_H_
6 #define GPU_COMMAND_BUFFER_SERVICE_CONTEXT_GROUP_H_ 6 #define GPU_COMMAND_BUFFER_SERVICE_CONTEXT_GROUP_H_
7 7
8 #include <map>
8 #include <string> 9 #include <string>
9 #include <vector> 10 #include <vector>
10 #include "base/basictypes.h" 11 #include "base/basictypes.h"
11 #include "base/containers/hash_tables.h" 12 #include "base/containers/hash_tables.h"
12 #include "base/memory/linked_ptr.h" 13 #include "base/memory/linked_ptr.h"
13 #include "base/memory/ref_counted.h" 14 #include "base/memory/ref_counted.h"
14 #include "base/memory/scoped_ptr.h" 15 #include "base/memory/scoped_ptr.h"
15 #include "base/memory/weak_ptr.h" 16 #include "base/memory/weak_ptr.h"
16 #include "gpu/command_buffer/common/gles2_cmd_format.h" 17 #include "gpu/command_buffer/common/gles2_cmd_format.h"
17 #include "gpu/command_buffer/service/feature_info.h" 18 #include "gpu/command_buffer/service/feature_info.h"
(...skipping 149 matching lines...)
167 void LoseContexts(GLenum reset_status); 168 void LoseContexts(GLenum reset_status);
168 169
169 // EXT_draw_buffer related states for backbuffer. 170 // EXT_draw_buffer related states for backbuffer.
170 GLenum draw_buffer() const { 171 GLenum draw_buffer() const {
171 return draw_buffer_; 172 return draw_buffer_;
172 } 173 }
173 void set_draw_buffer(GLenum buf) { 174 void set_draw_buffer(GLenum buf) {
174 draw_buffer_ = buf; 175 draw_buffer_ = buf;
175 } 176 }
176 177
178 void AddSamplerId(GLuint client_id, GLuint service_id) {
179 samplers_id_map_[client_id] = service_id;
180 }
181
182 bool GetSamplerServiceId(GLuint client_id, GLuint* service_id) const {
183 std::map<GLuint, GLuint>::const_iterator iter =
184 samplers_id_map_.find(client_id);
185 if (iter == samplers_id_map_.end())
186 return false;
187 if (service_id)
188 *service_id = iter->second;
189 return true;
190 }
191
192 void RemoveSamplerId(GLuint client_id) {
193 samplers_id_map_.erase(client_id);
194 }
195
196 void AddTransformFeedbackId(GLuint client_id, GLuint service_id) {
197 transformfeedbacks_id_map_[client_id] = service_id;
198 }
199
200 bool GetTransformFeedbackServiceId(
201 GLuint client_id, GLuint* service_id) const {
202 std::map<GLuint, GLuint>::const_iterator iter =
203 transformfeedbacks_id_map_.find(client_id);
204 if (iter == transformfeedbacks_id_map_.end())
205 return false;
206 if (service_id)
207 *service_id = iter->second;
208 return true;
209 }
210
211 void RemoveTransformFeedbackId(GLuint client_id) {
212 transformfeedbacks_id_map_.erase(client_id);
213 }
214
177 private: 215 private:
178 friend class base::RefCounted<ContextGroup>; 216 friend class base::RefCounted<ContextGroup>;
179 ~ContextGroup(); 217 ~ContextGroup();
180 218
181 bool CheckGLFeature(GLint min_required, GLint* v); 219 bool CheckGLFeature(GLint min_required, GLint* v);
182 bool CheckGLFeatureU(GLint min_required, uint32* v); 220 bool CheckGLFeatureU(GLint min_required, uint32* v);
183 bool QueryGLFeature(GLenum pname, GLint min_required, GLint* v); 221 bool QueryGLFeature(GLenum pname, GLint min_required, GLint* v);
184 bool QueryGLFeatureU(GLenum pname, GLint min_required, uint32* v); 222 bool QueryGLFeatureU(GLenum pname, GLint min_required, uint32* v);
185 bool HaveContexts(); 223 bool HaveContexts();
186 224
(...skipping 29 matching lines...)
216 scoped_ptr<ProgramManager> program_manager_; 254 scoped_ptr<ProgramManager> program_manager_;
217 255
218 scoped_ptr<ShaderManager> shader_manager_; 256 scoped_ptr<ShaderManager> shader_manager_;
219 257
220 scoped_ptr<ValuebufferManager> valuebuffer_manager_; 258 scoped_ptr<ValuebufferManager> valuebuffer_manager_;
221 259
222 scoped_refptr<FeatureInfo> feature_info_; 260 scoped_refptr<FeatureInfo> feature_info_;
223 261
224 std::vector<base::WeakPtr<gles2::GLES2Decoder> > decoders_; 262 std::vector<base::WeakPtr<gles2::GLES2Decoder> > decoders_;
225 263
264 // Mappings from client side IDs to service side IDs.
265 std::map<GLuint, GLuint> samplers_id_map_;
266 std::map<GLuint, GLuint> transformfeedbacks_id_map_;
267
226 GLenum draw_buffer_; 268 GLenum draw_buffer_;
227 269
228 DISALLOW_COPY_AND_ASSIGN(ContextGroup); 270 DISALLOW_COPY_AND_ASSIGN(ContextGroup);
229 }; 271 };
230 272
231 } // namespace gles2 273 } // namespace gles2
232 } // namespace gpu 274 } // namespace gpu
233 275
234 #endif // GPU_COMMAND_BUFFER_SERVICE_CONTEXT_GROUP_H_ 276 #endif // GPU_COMMAND_BUFFER_SERVICE_CONTEXT_GROUP_H_
235 277
236 278
OLDNEW
« no previous file with comments | « gpu/command_buffer/common/gles2_cmd_utils_implementation_autogen.h ('k') | gpu/command_buffer/service/gl_context_virtual.h » ('j') | no next file with comments »

Powered by Google App Engine