Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(184)

Unified Diff: ui/gl/gl_surface_egl.cc

Issue 2801163002: Deletes NativeViewGLSurfaceEGL::Initialize(gfx::VSyncProvider). (Closed)
Patch Set: fixes DirectCompositionSurfaceTest Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/gl/gl_surface_egl.h ('k') | ui/gl/gl_surface_egl_x11.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/gl/gl_surface_egl.cc
diff --git a/ui/gl/gl_surface_egl.cc b/ui/gl/gl_surface_egl.cc
index e89ff7dd3e006e4ffff5037a6464fdbc5c158200..3f37fc213cad1f94aeda6618e688e5855e55b791 100644
--- a/ui/gl/gl_surface_egl.cc
+++ b/ui/gl/gl_surface_egl.cc
@@ -15,6 +15,7 @@
#include "base/lazy_instance.h"
#include "base/logging.h"
#include "base/macros.h"
+#include "base/memory/ptr_util.h"
#include "base/message_loop/message_loop.h"
#include "base/metrics/histogram_macros.h"
#include "base/strings/string_number_conversions.h"
@@ -708,7 +709,9 @@ EGLDisplay GLSurfaceEGL::InitializeDisplay(
return g_display;
}
-NativeViewGLSurfaceEGL::NativeViewGLSurfaceEGL(EGLNativeWindowType window)
+NativeViewGLSurfaceEGL::NativeViewGLSurfaceEGL(
+ EGLNativeWindowType window,
+ std::unique_ptr<gfx::VSyncProvider> vsync_provider)
: window_(window),
size_(1, 1),
enable_fixed_size_angle_(false),
@@ -716,6 +719,7 @@ NativeViewGLSurfaceEGL::NativeViewGLSurfaceEGL(EGLNativeWindowType window)
supports_post_sub_buffer_(false),
supports_swap_buffer_with_damage_(false),
flips_vertically_(false),
+ vsync_provider_external_(std::move(vsync_provider)),
swap_interval_(1) {
#if defined(OS_ANDROID)
if (window)
@@ -732,13 +736,8 @@ NativeViewGLSurfaceEGL::NativeViewGLSurfaceEGL(EGLNativeWindowType window)
}
bool NativeViewGLSurfaceEGL::Initialize(GLSurfaceFormat format) {
- format_ = format;
- return Initialize(nullptr);
-}
-
-bool NativeViewGLSurfaceEGL::Initialize(
- std::unique_ptr<gfx::VSyncProvider> sync_provider) {
DCHECK(!surface_);
+ format_ = format;
if (!GetDisplay()) {
LOG(ERROR) << "Trying to create surface with invalid display.";
@@ -810,10 +809,10 @@ bool NativeViewGLSurfaceEGL::Initialize(
supports_swap_buffer_with_damage_ =
g_driver_egl.ext.b_EGL_KHR_swap_buffers_with_damage;
- if (sync_provider)
- vsync_provider_ = std::move(sync_provider);
- else if (EGLSyncControlVSyncProvider::IsSupported())
- vsync_provider_.reset(new EGLSyncControlVSyncProvider(surface_));
+ if (!vsync_provider_external_ && EGLSyncControlVSyncProvider::IsSupported()) {
+ vsync_provider_internal_ =
+ base::MakeUnique<EGLSyncControlVSyncProvider>(surface_);
+ }
return true;
}
@@ -822,6 +821,8 @@ bool NativeViewGLSurfaceEGL::InitializeNativeWindow() {
}
void NativeViewGLSurfaceEGL::Destroy() {
+ vsync_provider_internal_ = nullptr;
+
if (surface_) {
if (!eglDestroySurface(GetDisplay(), surface_)) {
LOG(ERROR) << "eglDestroySurface failed with error "
@@ -1022,7 +1023,8 @@ gfx::SwapResult NativeViewGLSurfaceEGL::CommitOverlayPlanes() {
}
gfx::VSyncProvider* NativeViewGLSurfaceEGL::GetVSyncProvider() {
- return vsync_provider_.get();
+ return vsync_provider_external_ ? vsync_provider_external_.get()
+ : vsync_provider_internal_.get();
}
bool NativeViewGLSurfaceEGL::ScheduleOverlayPlane(
« no previous file with comments | « ui/gl/gl_surface_egl.h ('k') | ui/gl/gl_surface_egl_x11.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698