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 "cc/output/output_surface.h" | 5 #include "cc/output/output_surface.h" |
6 | 6 |
7 #include <stdint.h> | 7 #include <stdint.h> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/location.h" | 10 #include "base/location.h" |
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
201 device_scale_factor_ = scale_factor; | 201 device_scale_factor_ = scale_factor; |
202 has_alpha_ = has_alpha; | 202 has_alpha_ = has_alpha; |
203 if (context_provider_.get()) { | 203 if (context_provider_.get()) { |
204 context_provider_->ContextGL()->ResizeCHROMIUM(size.width(), size.height(), | 204 context_provider_->ContextGL()->ResizeCHROMIUM(size.width(), size.height(), |
205 scale_factor, has_alpha); | 205 scale_factor, has_alpha); |
206 } | 206 } |
207 if (software_device_) | 207 if (software_device_) |
208 software_device_->Resize(size, scale_factor); | 208 software_device_->Resize(size, scale_factor); |
209 } | 209 } |
210 | 210 |
211 void OutputSurface::PostSwapBuffersComplete() { | |
212 base::ThreadTaskRunnerHandle::Get()->PostTask( | |
213 FROM_HERE, base::Bind(&OutputSurface::OnSwapBuffersComplete, | |
214 weak_ptr_factory_.GetWeakPtr())); | |
215 } | |
216 | |
217 // We don't post tasks bound to the client directly since they might run | 211 // We don't post tasks bound to the client directly since they might run |
218 // after the OutputSurface has been destroyed. | 212 // after the OutputSurface has been destroyed. |
219 void OutputSurface::OnSwapBuffersComplete() { | 213 void OutputSurface::OnSwapBuffersComplete() { |
220 client_->DidSwapBuffersComplete(); | 214 client_->DidSwapBuffersComplete(); |
221 } | 215 } |
222 | 216 |
223 bool OutputSurface::OnMemoryDump(const base::trace_event::MemoryDumpArgs& args, | 217 bool OutputSurface::OnMemoryDump(const base::trace_event::MemoryDumpArgs& args, |
224 base::trace_event::ProcessMemoryDump* pmd) { | 218 base::trace_event::ProcessMemoryDump* pmd) { |
225 if (auto* context_provider = this->context_provider()) { | 219 if (auto* context_provider = this->context_provider()) { |
226 // No need to lock, main context provider is not shared. | 220 // No need to lock, main context provider is not shared. |
227 if (auto* gr_context = context_provider->GrContext()) { | 221 if (auto* gr_context = context_provider->GrContext()) { |
228 SkiaGpuTraceMemoryDump trace_memory_dump( | 222 SkiaGpuTraceMemoryDump trace_memory_dump( |
229 pmd, context_provider->ContextSupport()->ShareGroupTracingGUID()); | 223 pmd, context_provider->ContextSupport()->ShareGroupTracingGUID()); |
230 gr_context->dumpMemoryStatistics(&trace_memory_dump); | 224 gr_context->dumpMemoryStatistics(&trace_memory_dump); |
231 } | 225 } |
232 } | 226 } |
233 return true; | 227 return true; |
234 } | 228 } |
235 | 229 |
236 void OutputSurface::DidLoseOutputSurface() { | 230 void OutputSurface::DidLoseOutputSurface() { |
237 TRACE_EVENT0("cc", "OutputSurface::DidLoseOutputSurface"); | 231 TRACE_EVENT0("cc", "OutputSurface::DidLoseOutputSurface"); |
238 client_->DidLoseOutputSurface(); | 232 client_->DidLoseOutputSurface(); |
239 } | 233 } |
240 | 234 |
241 } // namespace cc | 235 } // namespace cc |
OLD | NEW |