| Index: ui/gl/gl_surface_egl.cc
|
| diff --git a/ui/gl/gl_surface_egl.cc b/ui/gl/gl_surface_egl.cc
|
| index c17892fb1274eadae8dcf0db4a6076173e38b328..e3ae102b6999c7337d8c5c4d482d4104d8c77809 100644
|
| --- a/ui/gl/gl_surface_egl.cc
|
| +++ b/ui/gl/gl_surface_egl.cc
|
| @@ -31,6 +31,7 @@
|
| #include "ui/gl/gl_surface_stub.h"
|
| #include "ui/gl/gl_switches.h"
|
| #include "ui/gl/scoped_make_current.h"
|
| +#include "ui/gl/sync_control_vsync_provider.h"
|
|
|
| #if defined(USE_X11) && !defined(OS_CHROMEOS)
|
| extern "C" {
|
| @@ -136,6 +137,41 @@ bool g_egl_surfaceless_context_supported = false;
|
| bool g_egl_surface_orientation_supported = false;
|
| bool g_use_direct_composition = false;
|
|
|
| +class EGLSyncControlVSyncProvider : public SyncControlVSyncProvider {
|
| + public:
|
| + explicit EGLSyncControlVSyncProvider(EGLSurface surface)
|
| + : SyncControlVSyncProvider(),
|
| + surface_(surface) {
|
| + }
|
| +
|
| + ~EGLSyncControlVSyncProvider() override {}
|
| +
|
| + protected:
|
| + bool GetSyncValues(int64_t* system_time,
|
| + int64_t* media_stream_counter,
|
| + int64_t* swap_buffer_counter) override {
|
| + uint64_t u_system_time, u_media_stream_counter, u_swap_buffer_counter;
|
| + bool result = eglGetSyncValuesCHROMIUM(
|
| + g_display, surface_, &u_system_time,
|
| + &u_media_stream_counter, &u_swap_buffer_counter) == EGL_TRUE;
|
| + if (result) {
|
| + *system_time = static_cast<int64_t>(u_system_time);
|
| + *media_stream_counter = static_cast<int64_t>(u_media_stream_counter);
|
| + *swap_buffer_counter = static_cast<int64_t>(u_swap_buffer_counter);
|
| + }
|
| + return result;
|
| + }
|
| +
|
| + bool GetMscRate(int32_t* numerator, int32_t* denominator) override {
|
| + return false;
|
| + }
|
| +
|
| + private:
|
| + EGLSurface surface_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(EGLSyncControlVSyncProvider);
|
| +};
|
| +
|
| EGLDisplay GetPlatformANGLEDisplay(EGLNativeDisplayType native_display,
|
| EGLenum platform_type,
|
| bool warpDevice) {
|
| @@ -431,31 +467,6 @@ void GetEGLInitDisplays(bool supports_angle_d3d,
|
| }
|
| }
|
|
|
| -EGLSyncControlVSyncProvider::EGLSyncControlVSyncProvider(EGLSurface surface)
|
| - : SyncControlVSyncProvider(), surface_(surface) {}
|
| -
|
| -EGLSyncControlVSyncProvider::~EGLSyncControlVSyncProvider() {}
|
| -
|
| -bool EGLSyncControlVSyncProvider::GetSyncValues(int64_t* system_time,
|
| - int64_t* media_stream_counter,
|
| - int64_t* swap_buffer_counter) {
|
| - uint64_t u_system_time, u_media_stream_counter, u_swap_buffer_counter;
|
| - bool result = eglGetSyncValuesCHROMIUM(g_display, surface_, &u_system_time,
|
| - &u_media_stream_counter,
|
| - &u_swap_buffer_counter) == EGL_TRUE;
|
| - if (result) {
|
| - *system_time = static_cast<int64_t>(u_system_time);
|
| - *media_stream_counter = static_cast<int64_t>(u_media_stream_counter);
|
| - *swap_buffer_counter = static_cast<int64_t>(u_swap_buffer_counter);
|
| - }
|
| - return result;
|
| -}
|
| -
|
| -bool EGLSyncControlVSyncProvider::GetMscRate(int32_t* numerator,
|
| - int32_t* denominator) {
|
| - return false;
|
| -}
|
| -
|
| GLSurfaceEGL::GLSurfaceEGL() {}
|
|
|
| GLSurfaceFormat GLSurfaceEGL::GetFormat() {
|
|
|