Index: gpu/command_buffer/service/context_group.h |
diff --git a/gpu/command_buffer/service/context_group.h b/gpu/command_buffer/service/context_group.h |
index b6b64830803d1ea2808a9f599bf9e4888ce07a53..f695a3e1a81d429a965abbea62f288a05b13552f 100644 |
--- a/gpu/command_buffer/service/context_group.h |
+++ b/gpu/command_buffer/service/context_group.h |
@@ -5,6 +5,7 @@ |
#ifndef GPU_COMMAND_BUFFER_SERVICE_CONTEXT_GROUP_H_ |
#define GPU_COMMAND_BUFFER_SERVICE_CONTEXT_GROUP_H_ |
+#include <map> |
#include <string> |
#include <vector> |
#include "base/basictypes.h" |
@@ -174,6 +175,43 @@ class GPU_EXPORT ContextGroup : public base::RefCounted<ContextGroup> { |
draw_buffer_ = buf; |
} |
+ void AddSamplerId(GLuint client_id, GLuint service_id) { |
+ samplers_id_map_[client_id] = service_id; |
+ } |
+ |
+ bool GetSamplerServiceId(GLuint client_id, GLuint* service_id) const { |
+ std::map<GLuint, GLuint>::const_iterator iter = |
+ samplers_id_map_.find(client_id); |
+ if (iter == samplers_id_map_.end()) |
+ return false; |
+ if (service_id) |
+ *service_id = iter->second; |
+ return true; |
+ } |
+ |
+ void RemoveSamplerId(GLuint client_id) { |
+ samplers_id_map_.erase(client_id); |
+ } |
+ |
+ void AddTransformFeedbackId(GLuint client_id, GLuint service_id) { |
+ transformfeedbacks_id_map_[client_id] = service_id; |
+ } |
+ |
+ bool GetTransformFeedbackServiceId( |
+ GLuint client_id, GLuint* service_id) const { |
+ std::map<GLuint, GLuint>::const_iterator iter = |
+ transformfeedbacks_id_map_.find(client_id); |
+ if (iter == transformfeedbacks_id_map_.end()) |
+ return false; |
+ if (service_id) |
+ *service_id = iter->second; |
+ return true; |
+ } |
+ |
+ void RemoveTransformFeedbackId(GLuint client_id) { |
+ transformfeedbacks_id_map_.erase(client_id); |
+ } |
+ |
private: |
friend class base::RefCounted<ContextGroup>; |
~ContextGroup(); |
@@ -223,6 +261,10 @@ class GPU_EXPORT ContextGroup : public base::RefCounted<ContextGroup> { |
std::vector<base::WeakPtr<gles2::GLES2Decoder> > decoders_; |
+ // Mappings from client side IDs to service side IDs. |
+ std::map<GLuint, GLuint> samplers_id_map_; |
+ std::map<GLuint, GLuint> transformfeedbacks_id_map_; |
+ |
GLenum draw_buffer_; |
DISALLOW_COPY_AND_ASSIGN(ContextGroup); |