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 "content/common/gpu/client/command_buffer_proxy_impl.h" | 5 #include "content/common/gpu/client/command_buffer_proxy_impl.h" |
6 | 6 |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/callback.h" | 9 #include "base/callback.h" |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
61 } | 61 } |
62 | 62 |
63 bool CommandBufferProxyImpl::OnMessageReceived(const IPC::Message& message) { | 63 bool CommandBufferProxyImpl::OnMessageReceived(const IPC::Message& message) { |
64 scoped_ptr<base::AutoLock> lock; | 64 scoped_ptr<base::AutoLock> lock; |
65 if (lock_) | 65 if (lock_) |
66 lock.reset(new base::AutoLock(*lock_)); | 66 lock.reset(new base::AutoLock(*lock_)); |
67 bool handled = true; | 67 bool handled = true; |
68 IPC_BEGIN_MESSAGE_MAP(CommandBufferProxyImpl, message) | 68 IPC_BEGIN_MESSAGE_MAP(CommandBufferProxyImpl, message) |
69 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_Destroyed, OnDestroyed); | 69 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_Destroyed, OnDestroyed); |
70 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_ConsoleMsg, OnConsoleMessage); | 70 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_ConsoleMsg, OnConsoleMessage); |
71 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_SetMemoryAllocation, | |
72 OnSetMemoryAllocation); | |
73 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_SignalSyncPointAck, | 71 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_SignalSyncPointAck, |
74 OnSignalSyncPointAck); | 72 OnSignalSyncPointAck); |
75 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_SwapBuffersCompleted, | 73 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_SwapBuffersCompleted, |
76 OnSwapBuffersCompleted); | 74 OnSwapBuffersCompleted); |
77 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_UpdateVSyncParameters, | 75 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_UpdateVSyncParameters, |
78 OnUpdateVSyncParameters); | 76 OnUpdateVSyncParameters); |
79 IPC_MESSAGE_UNHANDLED(handled = false) | 77 IPC_MESSAGE_UNHANDLED(handled = false) |
80 IPC_END_MESSAGE_MAP() | 78 IPC_END_MESSAGE_MAP() |
81 | 79 |
82 DCHECK(handled); | 80 DCHECK(handled); |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
121 } | 119 } |
122 } | 120 } |
123 | 121 |
124 void CommandBufferProxyImpl::OnConsoleMessage( | 122 void CommandBufferProxyImpl::OnConsoleMessage( |
125 const GPUCommandBufferConsoleMessage& message) { | 123 const GPUCommandBufferConsoleMessage& message) { |
126 if (!console_message_callback_.is_null()) { | 124 if (!console_message_callback_.is_null()) { |
127 console_message_callback_.Run(message.message, message.id); | 125 console_message_callback_.Run(message.message, message.id); |
128 } | 126 } |
129 } | 127 } |
130 | 128 |
131 void CommandBufferProxyImpl::SetMemoryAllocationChangedCallback( | |
132 const MemoryAllocationChangedCallback& callback) { | |
133 CheckLock(); | |
134 if (last_state_.error != gpu::error::kNoError) | |
135 return; | |
136 | |
137 memory_allocation_changed_callback_ = callback; | |
138 Send(new GpuCommandBufferMsg_SetClientHasMemoryAllocationChangedCallback( | |
139 route_id_, !memory_allocation_changed_callback_.is_null())); | |
140 } | |
141 | |
142 void CommandBufferProxyImpl::AddDeletionObserver(DeletionObserver* observer) { | 129 void CommandBufferProxyImpl::AddDeletionObserver(DeletionObserver* observer) { |
143 CheckLock(); | 130 CheckLock(); |
144 deletion_observers_.AddObserver(observer); | 131 deletion_observers_.AddObserver(observer); |
145 } | 132 } |
146 | 133 |
147 void CommandBufferProxyImpl::RemoveDeletionObserver( | 134 void CommandBufferProxyImpl::RemoveDeletionObserver( |
148 DeletionObserver* observer) { | 135 DeletionObserver* observer) { |
149 CheckLock(); | 136 CheckLock(); |
150 deletion_observers_.RemoveObserver(observer); | 137 deletion_observers_.RemoveObserver(observer); |
151 } | 138 } |
152 | 139 |
153 void CommandBufferProxyImpl::OnSetMemoryAllocation( | |
154 const gpu::MemoryAllocation& allocation) { | |
155 if (!memory_allocation_changed_callback_.is_null()) | |
156 memory_allocation_changed_callback_.Run(allocation); | |
157 } | |
158 | |
159 void CommandBufferProxyImpl::OnSignalSyncPointAck(uint32 id) { | 140 void CommandBufferProxyImpl::OnSignalSyncPointAck(uint32 id) { |
160 SignalTaskMap::iterator it = signal_tasks_.find(id); | 141 SignalTaskMap::iterator it = signal_tasks_.find(id); |
161 DCHECK(it != signal_tasks_.end()); | 142 DCHECK(it != signal_tasks_.end()); |
162 base::Closure callback = it->second; | 143 base::Closure callback = it->second; |
163 signal_tasks_.erase(it); | 144 signal_tasks_.erase(it); |
164 callback.Run(); | 145 callback.Run(); |
165 } | 146 } |
166 | 147 |
167 void CommandBufferProxyImpl::SetContextLostCallback( | 148 void CommandBufferProxyImpl::SetContextLostCallback( |
168 const base::Closure& callback) { | 149 const base::Closure& callback) { |
(...skipping 488 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
657 } | 638 } |
658 } | 639 } |
659 | 640 |
660 void CommandBufferProxyImpl::OnUpdateVSyncParameters(base::TimeTicks timebase, | 641 void CommandBufferProxyImpl::OnUpdateVSyncParameters(base::TimeTicks timebase, |
661 base::TimeDelta interval) { | 642 base::TimeDelta interval) { |
662 if (!update_vsync_parameters_completion_callback_.is_null()) | 643 if (!update_vsync_parameters_completion_callback_.is_null()) |
663 update_vsync_parameters_completion_callback_.Run(timebase, interval); | 644 update_vsync_parameters_completion_callback_.Run(timebase, interval); |
664 } | 645 } |
665 | 646 |
666 } // namespace content | 647 } // namespace content |
OLD | NEW |