Index: gpu/command_buffer/service/uniform_subscription_manager.cc |
diff --git a/gpu/command_buffer/service/uniform_subscription_manager.cc b/gpu/command_buffer/service/uniform_subscription_manager.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..306c0ec21037e78fb6f13eb3728fc31eaa4070f6 |
--- /dev/null |
+++ b/gpu/command_buffer/service/uniform_subscription_manager.cc |
@@ -0,0 +1,55 @@ |
+// Copyright (c) 2014 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "gpu/command_buffer/service/uniform_subscription_manager.h" |
+ |
+namespace gpu { |
+namespace gles2 { |
+ |
+UniformSubscriptionManager::UniformSubscriptionManager() { |
+} |
+ |
+UniformSubscriptionManager::~UniformSubscriptionManager() { |
+ DCHECK(subscriptions_.empty()); |
+} |
+ |
+void UniformSubscriptionManager::Destroy(bool have_context) { |
+ subscriptions_.clear(); |
+} |
+ |
+void UniformSubscriptionManager::AddSubscription(GLuint client_id, |
+ GLint location, |
+ GLenum target) { |
+ if (subscriptions_.find(client_id) != subscriptions_.end()) { |
+ subscriptions_.insert(std::make_pair(client_id, ProgramSubscriptions())); |
+ } |
+ subscriptions_[client_id].push_back(std::make_pair(target, location)); |
+} |
+ |
+void UniformSubscriptionManager::ActivateUniformSubscriptionState() { |
+ // TODO(orglofch) |
+} |
+ |
+const UniformSubscriptionManager::ProgramSubscriptions* |
+UniformSubscriptionManager::SubscriptionsForProgram(GLuint client_id) { |
+ SubscriptionMap::iterator it = subscriptions_.find(client_id); |
+ if (it != subscriptions_.end()) { |
+ return &it->second; |
+ } else { |
+ return NULL; |
+ } |
+} |
+ |
+Program::UniformApiType UniformSubscriptionManager::ApiTypeForTarget( |
+ GLenum target) { |
+ switch (target) { |
+ case GL_MOUSE_POSITION: |
+ return Program::kUniform2i; |
+ } |
+ NOTREACHED() << "Unhandled uniform subscription target " << target; |
+ return Program::kUniformNone; |
+} |
+ |
+} // namespace gles2 |
+} // namespace gpu |