| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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 "content/common/gpu/client/context_provider_command_buffer.h" | 5 #include "content/common/gpu/client/context_provider_command_buffer.h" |
| 6 | 6 |
| 7 #include <set> | 7 #include <set> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/callback_helpers.h" | 10 #include "base/callback_helpers.h" |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 80 | 80 |
| 81 | 81 |
| 82 CommandBufferProxyImpl* ContextProviderCommandBuffer::GetCommandBufferProxy() { | 82 CommandBufferProxyImpl* ContextProviderCommandBuffer::GetCommandBufferProxy() { |
| 83 return context3d_->GetCommandBufferProxy(); | 83 return context3d_->GetCommandBufferProxy(); |
| 84 } | 84 } |
| 85 | 85 |
| 86 int ContextProviderCommandBuffer::GetGPUProcessID() { | 86 int ContextProviderCommandBuffer::GetGPUProcessID() { |
| 87 return context3d_->GetGPUProcessID(); | 87 return context3d_->GetGPUProcessID(); |
| 88 } | 88 } |
| 89 | 89 |
| 90 WebGraphicsContext3DCommandBufferImpl* |
| 91 ContextProviderCommandBuffer::WebContext3D() { |
| 92 DCHECK(context3d_); |
| 93 DCHECK(lost_context_callback_proxy_); // Is bound to thread. |
| 94 DCHECK(context_thread_checker_.CalledOnValidThread()); |
| 95 |
| 96 return context3d_.get(); |
| 97 } |
| 98 |
| 90 bool ContextProviderCommandBuffer::BindToCurrentThread() { | 99 bool ContextProviderCommandBuffer::BindToCurrentThread() { |
| 91 // This is called on the thread the context will be used. | 100 // This is called on the thread the context will be used. |
| 92 DCHECK(context_thread_checker_.CalledOnValidThread()); | 101 DCHECK(context_thread_checker_.CalledOnValidThread()); |
| 93 | 102 |
| 94 if (lost_context_callback_proxy_) | 103 if (lost_context_callback_proxy_) |
| 95 return true; | 104 return true; |
| 96 | 105 |
| 97 if (!context3d_->makeContextCurrent()) | 106 if (!context3d_->makeContextCurrent()) |
| 98 return false; | 107 return false; |
| 99 | 108 |
| 100 InitializeCapabilities(); | 109 InitializeCapabilities(); |
| 101 | 110 |
| 102 std::string unique_context_name = | 111 std::string unique_context_name = |
| 103 base::StringPrintf("%s-%p", debug_name_.c_str(), context3d_.get()); | 112 base::StringPrintf("%s-%p", debug_name_.c_str(), context3d_.get()); |
| 104 context3d_->pushGroupMarkerEXT(unique_context_name.c_str()); | 113 context3d_->pushGroupMarkerEXT(unique_context_name.c_str()); |
| 105 | 114 |
| 106 lost_context_callback_proxy_.reset(new LostContextCallbackProxy(this)); | 115 lost_context_callback_proxy_.reset(new LostContextCallbackProxy(this)); |
| 107 context3d_->GetCommandBufferProxy()->SetMemoryAllocationChangedCallback( | 116 context3d_->GetCommandBufferProxy()->SetMemoryAllocationChangedCallback( |
| 108 base::Bind(&ContextProviderCommandBuffer::OnMemoryAllocationChanged, | 117 base::Bind(&ContextProviderCommandBuffer::OnMemoryAllocationChanged, |
| 109 base::Unretained(this))); | 118 base::Unretained(this))); |
| 110 return true; | 119 return true; |
| 111 } | 120 } |
| 112 | 121 |
| 113 WebGraphicsContext3DCommandBufferImpl* | 122 blink::WebGraphicsContext3D* ContextProviderCommandBuffer::Context3d() { |
| 114 ContextProviderCommandBuffer::Context3d() { | 123 return NULL; |
| 115 DCHECK(lost_context_callback_proxy_); // Is bound to thread. | |
| 116 DCHECK(context_thread_checker_.CalledOnValidThread()); | |
| 117 | |
| 118 return context3d_.get(); | |
| 119 } | 124 } |
| 120 | 125 |
| 121 gpu::gles2::GLES2Interface* ContextProviderCommandBuffer::ContextGL() { | 126 gpu::gles2::GLES2Interface* ContextProviderCommandBuffer::ContextGL() { |
| 122 DCHECK(context3d_); | 127 DCHECK(context3d_); |
| 123 DCHECK(lost_context_callback_proxy_); // Is bound to thread. | 128 DCHECK(lost_context_callback_proxy_); // Is bound to thread. |
| 124 DCHECK(context_thread_checker_.CalledOnValidThread()); | 129 DCHECK(context_thread_checker_.CalledOnValidThread()); |
| 125 | 130 |
| 126 return context3d_->GetImplementation(); | 131 return context3d_->GetImplementation(); |
| 127 } | 132 } |
| 128 | 133 |
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 230 | 235 |
| 231 void ContextProviderCommandBuffer::SetMemoryPolicyChangedCallback( | 236 void ContextProviderCommandBuffer::SetMemoryPolicyChangedCallback( |
| 232 const MemoryPolicyChangedCallback& memory_policy_changed_callback) { | 237 const MemoryPolicyChangedCallback& memory_policy_changed_callback) { |
| 233 DCHECK(context_thread_checker_.CalledOnValidThread()); | 238 DCHECK(context_thread_checker_.CalledOnValidThread()); |
| 234 DCHECK(memory_policy_changed_callback_.is_null() || | 239 DCHECK(memory_policy_changed_callback_.is_null() || |
| 235 memory_policy_changed_callback.is_null()); | 240 memory_policy_changed_callback.is_null()); |
| 236 memory_policy_changed_callback_ = memory_policy_changed_callback; | 241 memory_policy_changed_callback_ = memory_policy_changed_callback; |
| 237 } | 242 } |
| 238 | 243 |
| 239 } // namespace content | 244 } // namespace content |
| OLD | NEW |