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 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
52 } | 52 } |
53 | 53 |
54 bool CommandBufferProxyImpl::OnMessageReceived(const IPC::Message& message) { | 54 bool CommandBufferProxyImpl::OnMessageReceived(const IPC::Message& message) { |
55 scoped_ptr<base::AutoLock> lock; | 55 scoped_ptr<base::AutoLock> lock; |
56 if (lock_) | 56 if (lock_) |
57 lock.reset(new base::AutoLock(*lock_)); | 57 lock.reset(new base::AutoLock(*lock_)); |
58 bool handled = true; | 58 bool handled = true; |
59 IPC_BEGIN_MESSAGE_MAP(CommandBufferProxyImpl, message) | 59 IPC_BEGIN_MESSAGE_MAP(CommandBufferProxyImpl, message) |
60 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_Destroyed, OnDestroyed); | 60 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_Destroyed, OnDestroyed); |
61 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_ConsoleMsg, OnConsoleMessage); | 61 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_ConsoleMsg, OnConsoleMessage); |
62 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_SetMemoryAllocation, | |
63 OnSetMemoryAllocation); | |
64 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_SignalSyncPointAck, | 62 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_SignalSyncPointAck, |
65 OnSignalSyncPointAck); | 63 OnSignalSyncPointAck); |
66 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_SwapBuffersCompleted, | 64 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_SwapBuffersCompleted, |
67 OnSwapBuffersCompleted); | 65 OnSwapBuffersCompleted); |
68 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_UpdateVSyncParameters, | 66 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_UpdateVSyncParameters, |
69 OnUpdateVSyncParameters); | 67 OnUpdateVSyncParameters); |
70 IPC_MESSAGE_UNHANDLED(handled = false) | 68 IPC_MESSAGE_UNHANDLED(handled = false) |
71 IPC_END_MESSAGE_MAP() | 69 IPC_END_MESSAGE_MAP() |
72 | 70 |
73 DCHECK(handled); | 71 DCHECK(handled); |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
112 } | 110 } |
113 } | 111 } |
114 | 112 |
115 void CommandBufferProxyImpl::OnConsoleMessage( | 113 void CommandBufferProxyImpl::OnConsoleMessage( |
116 const GPUCommandBufferConsoleMessage& message) { | 114 const GPUCommandBufferConsoleMessage& message) { |
117 if (!console_message_callback_.is_null()) { | 115 if (!console_message_callback_.is_null()) { |
118 console_message_callback_.Run(message.message, message.id); | 116 console_message_callback_.Run(message.message, message.id); |
119 } | 117 } |
120 } | 118 } |
121 | 119 |
122 void CommandBufferProxyImpl::SetMemoryAllocationChangedCallback( | |
123 const MemoryAllocationChangedCallback& callback) { | |
124 CheckLock(); | |
125 if (last_state_.error != gpu::error::kNoError) | |
126 return; | |
127 | |
128 memory_allocation_changed_callback_ = callback; | |
129 Send(new GpuCommandBufferMsg_SetClientHasMemoryAllocationChangedCallback( | |
130 route_id_, !memory_allocation_changed_callback_.is_null())); | |
131 } | |
132 | |
133 void CommandBufferProxyImpl::AddDeletionObserver(DeletionObserver* observer) { | 120 void CommandBufferProxyImpl::AddDeletionObserver(DeletionObserver* observer) { |
134 CheckLock(); | 121 CheckLock(); |
135 deletion_observers_.AddObserver(observer); | 122 deletion_observers_.AddObserver(observer); |
136 } | 123 } |
137 | 124 |
138 void CommandBufferProxyImpl::RemoveDeletionObserver( | 125 void CommandBufferProxyImpl::RemoveDeletionObserver( |
139 DeletionObserver* observer) { | 126 DeletionObserver* observer) { |
140 CheckLock(); | 127 CheckLock(); |
141 deletion_observers_.RemoveObserver(observer); | 128 deletion_observers_.RemoveObserver(observer); |
142 } | 129 } |
143 | 130 |
144 void CommandBufferProxyImpl::OnSetMemoryAllocation( | |
145 const gpu::MemoryAllocation& allocation) { | |
146 if (!memory_allocation_changed_callback_.is_null()) | |
147 memory_allocation_changed_callback_.Run(allocation); | |
148 } | |
149 | |
150 void CommandBufferProxyImpl::OnSignalSyncPointAck(uint32 id) { | 131 void CommandBufferProxyImpl::OnSignalSyncPointAck(uint32 id) { |
151 SignalTaskMap::iterator it = signal_tasks_.find(id); | 132 SignalTaskMap::iterator it = signal_tasks_.find(id); |
152 DCHECK(it != signal_tasks_.end()); | 133 DCHECK(it != signal_tasks_.end()); |
153 base::Closure callback = it->second; | 134 base::Closure callback = it->second; |
154 signal_tasks_.erase(it); | 135 signal_tasks_.erase(it); |
155 callback.Run(); | 136 callback.Run(); |
156 } | 137 } |
157 | 138 |
158 void CommandBufferProxyImpl::SetContextLostCallback( | 139 void CommandBufferProxyImpl::SetContextLostCallback( |
159 const base::Closure& callback) { | 140 const base::Closure& callback) { |
(...skipping 480 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
640 } | 621 } |
641 } | 622 } |
642 | 623 |
643 void CommandBufferProxyImpl::OnUpdateVSyncParameters(base::TimeTicks timebase, | 624 void CommandBufferProxyImpl::OnUpdateVSyncParameters(base::TimeTicks timebase, |
644 base::TimeDelta interval) { | 625 base::TimeDelta interval) { |
645 if (!update_vsync_parameters_completion_callback_.is_null()) | 626 if (!update_vsync_parameters_completion_callback_.is_null()) |
646 update_vsync_parameters_completion_callback_.Run(timebase, interval); | 627 update_vsync_parameters_completion_callback_.Run(timebase, interval); |
647 } | 628 } |
648 | 629 |
649 } // namespace content | 630 } // namespace content |
OLD | NEW |