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 extern "C" { | 5 extern "C" { |
6 #include <X11/Xlib.h> | 6 #include <X11/Xlib.h> |
7 } | 7 } |
8 | 8 |
9 #include "ui/gl/gl_surface_glx.h" | 9 #include "ui/gl/gl_surface_glx.h" |
10 | 10 |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
70 #endif | 70 #endif |
71 | 71 |
72 class OMLSyncControlVSyncProvider | 72 class OMLSyncControlVSyncProvider |
73 : public gfx::SyncControlVSyncProvider { | 73 : public gfx::SyncControlVSyncProvider { |
74 public: | 74 public: |
75 explicit OMLSyncControlVSyncProvider(gfx::AcceleratedWidget window) | 75 explicit OMLSyncControlVSyncProvider(gfx::AcceleratedWidget window) |
76 : SyncControlVSyncProvider(), | 76 : SyncControlVSyncProvider(), |
77 window_(window) { | 77 window_(window) { |
78 } | 78 } |
79 | 79 |
80 virtual ~OMLSyncControlVSyncProvider() { } | 80 ~OMLSyncControlVSyncProvider() override {} |
81 | 81 |
82 protected: | 82 protected: |
83 virtual bool GetSyncValues(int64* system_time, | 83 bool GetSyncValues(int64* system_time, |
84 int64* media_stream_counter, | 84 int64* media_stream_counter, |
85 int64* swap_buffer_counter) override { | 85 int64* swap_buffer_counter) override { |
86 return glXGetSyncValuesOML(g_display, window_, system_time, | 86 return glXGetSyncValuesOML(g_display, window_, system_time, |
87 media_stream_counter, swap_buffer_counter); | 87 media_stream_counter, swap_buffer_counter); |
88 } | 88 } |
89 | 89 |
90 virtual bool GetMscRate(int32* numerator, int32* denominator) override { | 90 bool GetMscRate(int32* numerator, int32* denominator) override { |
91 if (!g_glx_get_msc_rate_oml_supported) | 91 if (!g_glx_get_msc_rate_oml_supported) |
92 return false; | 92 return false; |
93 | 93 |
94 if (!glXGetMscRateOML(g_display, window_, numerator, denominator)) { | 94 if (!glXGetMscRateOML(g_display, window_, numerator, denominator)) { |
95 // Once glXGetMscRateOML has been found to fail, don't try again, | 95 // Once glXGetMscRateOML has been found to fail, don't try again, |
96 // since each failing call may spew an error message. | 96 // since each failing call may spew an error message. |
97 g_glx_get_msc_rate_oml_supported = false; | 97 g_glx_get_msc_rate_oml_supported = false; |
98 return false; | 98 return false; |
99 } | 99 } |
100 | 100 |
(...skipping 19 matching lines...) Expand all Loading... |
120 return g_video_sync_thread; | 120 return g_video_sync_thread; |
121 } | 121 } |
122 | 122 |
123 private: | 123 private: |
124 friend class base::RefCounted<SGIVideoSyncThread>; | 124 friend class base::RefCounted<SGIVideoSyncThread>; |
125 | 125 |
126 SGIVideoSyncThread() : base::Thread("SGI_video_sync") { | 126 SGIVideoSyncThread() : base::Thread("SGI_video_sync") { |
127 DCHECK(CalledOnValidThread()); | 127 DCHECK(CalledOnValidThread()); |
128 } | 128 } |
129 | 129 |
130 virtual ~SGIVideoSyncThread() { | 130 ~SGIVideoSyncThread() override { |
131 DCHECK(CalledOnValidThread()); | 131 DCHECK(CalledOnValidThread()); |
132 g_video_sync_thread = NULL; | 132 g_video_sync_thread = NULL; |
133 Stop(); | 133 Stop(); |
134 } | 134 } |
135 | 135 |
136 static SGIVideoSyncThread* g_video_sync_thread; | 136 static SGIVideoSyncThread* g_video_sync_thread; |
137 | 137 |
138 DISALLOW_COPY_AND_ASSIGN(SGIVideoSyncThread); | 138 DISALLOW_COPY_AND_ASSIGN(SGIVideoSyncThread); |
139 }; | 139 }; |
140 | 140 |
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
249 : vsync_thread_(SGIVideoSyncThread::Create()), | 249 : vsync_thread_(SGIVideoSyncThread::Create()), |
250 shim_(new SGIVideoSyncProviderThreadShim(window)), | 250 shim_(new SGIVideoSyncProviderThreadShim(window)), |
251 cancel_vsync_flag_(shim_->cancel_vsync_flag()), | 251 cancel_vsync_flag_(shim_->cancel_vsync_flag()), |
252 vsync_lock_(shim_->vsync_lock()) { | 252 vsync_lock_(shim_->vsync_lock()) { |
253 vsync_thread_->message_loop()->PostTask( | 253 vsync_thread_->message_loop()->PostTask( |
254 FROM_HERE, | 254 FROM_HERE, |
255 base::Bind(&SGIVideoSyncProviderThreadShim::Initialize, | 255 base::Bind(&SGIVideoSyncProviderThreadShim::Initialize, |
256 base::Unretained(shim_.get()))); | 256 base::Unretained(shim_.get()))); |
257 } | 257 } |
258 | 258 |
259 virtual ~SGIVideoSyncVSyncProvider() { | 259 ~SGIVideoSyncVSyncProvider() override { |
260 { | 260 { |
261 base::AutoLock locked(*vsync_lock_); | 261 base::AutoLock locked(*vsync_lock_); |
262 cancel_vsync_flag_->Set(); | 262 cancel_vsync_flag_->Set(); |
263 } | 263 } |
264 | 264 |
265 // Hand-off |shim_| to be deleted on the |vsync_thread_|. | 265 // Hand-off |shim_| to be deleted on the |vsync_thread_|. |
266 vsync_thread_->message_loop()->DeleteSoon( | 266 vsync_thread_->message_loop()->DeleteSoon( |
267 FROM_HERE, | 267 FROM_HERE, |
268 shim_.release()); | 268 shim_.release()); |
269 } | 269 } |
270 | 270 |
271 virtual void GetVSyncParameters( | 271 void GetVSyncParameters( |
272 const VSyncProvider::UpdateVSyncCallback& callback) override { | 272 const VSyncProvider::UpdateVSyncCallback& callback) override { |
273 if (kGetVSyncParametersMinPeriod > base::TimeDelta()) { | 273 if (kGetVSyncParametersMinPeriod > base::TimeDelta()) { |
274 base::TimeTicks now = base::TimeTicks::Now(); | 274 base::TimeTicks now = base::TimeTicks::Now(); |
275 base::TimeDelta delta = now - last_get_vsync_parameters_time_; | 275 base::TimeDelta delta = now - last_get_vsync_parameters_time_; |
276 if (delta < kGetVSyncParametersMinPeriod) | 276 if (delta < kGetVSyncParametersMinPeriod) |
277 return; | 277 return; |
278 last_get_vsync_parameters_time_ = now; | 278 last_get_vsync_parameters_time_ = now; |
279 } | 279 } |
280 | 280 |
281 // Only one outstanding request per surface. | 281 // Only one outstanding request per surface. |
(...skipping 407 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
689 | 689 |
690 void* PbufferGLSurfaceGLX::GetConfig() { | 690 void* PbufferGLSurfaceGLX::GetConfig() { |
691 return config_; | 691 return config_; |
692 } | 692 } |
693 | 693 |
694 PbufferGLSurfaceGLX::~PbufferGLSurfaceGLX() { | 694 PbufferGLSurfaceGLX::~PbufferGLSurfaceGLX() { |
695 Destroy(); | 695 Destroy(); |
696 } | 696 } |
697 | 697 |
698 } // namespace gfx | 698 } // namespace gfx |
OLD | NEW |