diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2017-07-12 14:07:37 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2017-07-17 10:29:26 +0000 |
commit | ec02ee4181c49b61fce1c8fb99292dbb8139cc90 (patch) | |
tree | 25cde714b2b71eb639d1cd53f5a22e9ba76e14ef /chromium/ui/ozone/platform/cast | |
parent | bb09965444b5bb20b096a291445170876225268d (diff) | |
download | qtwebengine-chromium-ec02ee4181c49b61fce1c8fb99292dbb8139cc90.tar.gz |
BASELINE: Update Chromium to 59.0.3071.134
Change-Id: Id02ef6fb2204c5fd21668a1c3e6911c83b17585a
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'chromium/ui/ozone/platform/cast')
8 files changed, 44 insertions, 21 deletions
diff --git a/chromium/ui/ozone/platform/cast/client_native_pixmap_factory_cast.cc b/chromium/ui/ozone/platform/cast/client_native_pixmap_factory_cast.cc index 01f0b0f1b10..78f2aa5f2c6 100644 --- a/chromium/ui/ozone/platform/cast/client_native_pixmap_factory_cast.cc +++ b/chromium/ui/ozone/platform/cast/client_native_pixmap_factory_cast.cc @@ -7,8 +7,8 @@ #include "base/logging.h" #include "base/memory/ptr_util.h" #include "ui/gfx/buffer_types.h" -#include "ui/ozone/public/client_native_pixmap.h" -#include "ui/ozone/public/client_native_pixmap_factory.h" +#include "ui/gfx/client_native_pixmap.h" +#include "ui/gfx/client_native_pixmap_factory.h" namespace ui { namespace { @@ -16,7 +16,7 @@ namespace { // Dummy ClientNativePixmap implementation for Cast ozone. // Our NativePixmaps are just used to plumb an overlay frame through, // so they get instantiated, but not used. -class ClientNativePixmapCast : public ClientNativePixmap { +class ClientNativePixmapCast : public gfx::ClientNativePixmap { public: // ClientNativePixmap implementation: bool Map() override { @@ -34,7 +34,7 @@ class ClientNativePixmapCast : public ClientNativePixmap { } }; -class ClientNativePixmapFactoryCast : public ClientNativePixmapFactory { +class ClientNativePixmapFactoryCast : public gfx::ClientNativePixmapFactory { public: // ClientNativePixmapFactoryCast implementation: bool IsConfigurationSupported(gfx::BufferFormat format, @@ -43,7 +43,7 @@ class ClientNativePixmapFactoryCast : public ClientNativePixmapFactory { usage == gfx::BufferUsage::SCANOUT; } - std::unique_ptr<ClientNativePixmap> ImportFromHandle( + std::unique_ptr<gfx::ClientNativePixmap> ImportFromHandle( const gfx::NativePixmapHandle& handle, const gfx::Size& size, gfx::BufferUsage usage) override { @@ -53,7 +53,7 @@ class ClientNativePixmapFactoryCast : public ClientNativePixmapFactory { } // namespace -ClientNativePixmapFactory* CreateClientNativePixmapFactoryCast() { +gfx::ClientNativePixmapFactory* CreateClientNativePixmapFactoryCast() { return new ClientNativePixmapFactoryCast(); } diff --git a/chromium/ui/ozone/platform/cast/client_native_pixmap_factory_cast.h b/chromium/ui/ozone/platform/cast/client_native_pixmap_factory_cast.h index a4d26b17854..447e4596888 100644 --- a/chromium/ui/ozone/platform/cast/client_native_pixmap_factory_cast.h +++ b/chromium/ui/ozone/platform/cast/client_native_pixmap_factory_cast.h @@ -5,12 +5,14 @@ #ifndef UI_OZONE_PLATFORM_CAST_CLIENT_NATIVE_PIXMAP_FACTORY_CAST_H_ #define UI_OZONE_PLATFORM_CAST_CLIENT_NATIVE_PIXMAP_FACTORY_CAST_H_ -namespace ui { - +namespace gfx { class ClientNativePixmapFactory; +} + +namespace ui { // Constructor hook for use in constructor_list.cc -ClientNativePixmapFactory* CreateClientNativePixmapFactoryCast(); +gfx::ClientNativePixmapFactory* CreateClientNativePixmapFactoryCast(); } // namespace ui diff --git a/chromium/ui/ozone/platform/cast/gl_surface_cast.cc b/chromium/ui/ozone/platform/cast/gl_surface_cast.cc index 5f50ee8a690..04d7d64c2d1 100644 --- a/chromium/ui/ozone/platform/cast/gl_surface_cast.cc +++ b/chromium/ui/ozone/platform/cast/gl_surface_cast.cc @@ -4,14 +4,26 @@ #include "ui/ozone/platform/cast/gl_surface_cast.h" +#include "base/memory/ptr_util.h" +#include "ui/gfx/vsync_provider.h" #include "ui/ozone/common/egl_util.h" #include "ui/ozone/platform/cast/gl_ozone_egl_cast.h" +namespace { +// Target fixed 30fps. +// TODO(halliwell): We might need to customize this value on various devices +// or make it dynamic that throttles framerate if device is overheating. +const base::TimeDelta kVSyncInterval = base::TimeDelta::FromSeconds(2) / 59.9; +} // namespace + namespace ui { GLSurfaceCast::GLSurfaceCast(gfx::AcceleratedWidget widget, GLOzoneEglCast* parent) - : NativeViewGLSurfaceEGL(parent->GetNativeWindow()), + : NativeViewGLSurfaceEGL( + parent->GetNativeWindow(), + base::MakeUnique<gfx::FixedVSyncProvider>(base::TimeTicks(), + kVSyncInterval)), widget_(widget), parent_(parent), supports_swap_buffer_with_bounds_( diff --git a/chromium/ui/ozone/platform/cast/overlay_manager_cast.cc b/chromium/ui/ozone/platform/cast/overlay_manager_cast.cc index 228217e2c28..72b0ba8de97 100644 --- a/chromium/ui/ozone/platform/cast/overlay_manager_cast.cc +++ b/chromium/ui/ozone/platform/cast/overlay_manager_cast.cc @@ -12,8 +12,8 @@ namespace ui { namespace { -base::LazyInstance<OverlayManagerCast::OverlayCompositedCallback> - g_overlay_composited_callback = LAZY_INSTANCE_INITIALIZER; +base::LazyInstance<OverlayManagerCast::OverlayCompositedCallback>:: + DestructorAtExit g_overlay_composited_callback = LAZY_INSTANCE_INITIALIZER; // Translates a gfx::OverlayTransform into a VideoPlane::Transform. // Could be just a lookup table once we have unit tests for this code diff --git a/chromium/ui/ozone/platform/cast/ozone_platform_cast.cc b/chromium/ui/ozone/platform/cast/ozone_platform_cast.cc index a8bca846673..72bc6f29a53 100644 --- a/chromium/ui/ozone/platform/cast/ozone_platform_cast.cc +++ b/chromium/ui/ozone/platform/cast/ozone_platform_cast.cc @@ -85,7 +85,7 @@ class OzonePlatformCast : public OzonePlatform { return nullptr; } - void InitializeUI() override { + void InitializeUI(const InitParams& params) override { device_manager_ = CreateDeviceManager(); overlay_manager_.reset(new OverlayManagerCast()); cursor_factory_.reset(new CursorFactoryOzone()); @@ -111,7 +111,7 @@ class OzonePlatformCast : public OzonePlatform { if (enable_dummy_software_rendering) surface_factory_.reset(new SurfaceFactoryCast()); } - void InitializeGPU() override { + void InitializeGPU(const InitParams& params) override { surface_factory_.reset(new SurfaceFactoryCast(std::move(egl_platform_))); } diff --git a/chromium/ui/ozone/platform/cast/platform_window_cast.h b/chromium/ui/ozone/platform/cast/platform_window_cast.h index 758e79a5c1d..4a494f2c830 100644 --- a/chromium/ui/ozone/platform/cast/platform_window_cast.h +++ b/chromium/ui/ozone/platform/cast/platform_window_cast.h @@ -28,6 +28,7 @@ class PlatformWindowCast : public PlatformWindow, void Show() override {} void Hide() override {} void Close() override {} + void PrepareForShutdown() override {} void SetCapture() override {} void ReleaseCapture() override {} void ToggleFullscreen() override {} diff --git a/chromium/ui/ozone/platform/cast/surface_factory_cast.cc b/chromium/ui/ozone/platform/cast/surface_factory_cast.cc index 5d12590852b..fca7ae8613d 100644 --- a/chromium/ui/ozone/platform/cast/surface_factory_cast.cc +++ b/chromium/ui/ozone/platform/cast/surface_factory_cast.cc @@ -11,8 +11,9 @@ #include "chromecast/public/cast_egl_platform.h" #include "third_party/skia/include/core/SkSurface.h" #include "ui/gfx/geometry/rect.h" +#include "ui/gfx/native_pixmap.h" #include "ui/gfx/vsync_provider.h" -#include "ui/ozone/public/native_pixmap.h" +#include "ui/ozone/common/gl_ozone_osmesa.h" #include "ui/ozone/public/surface_ozone_canvas.h" namespace ui { @@ -44,7 +45,7 @@ class DummySurface : public SurfaceOzoneCanvas { DISALLOW_COPY_AND_ASSIGN(DummySurface); }; -class CastPixmap : public NativePixmap { +class CastPixmap : public gfx::NativePixmap { public: explicit CastPixmap(GLOzoneEglCast* parent) : parent_(parent) {} @@ -87,12 +88,16 @@ class CastPixmap : public NativePixmap { } // namespace -SurfaceFactoryCast::SurfaceFactoryCast() {} +SurfaceFactoryCast::SurfaceFactoryCast() : SurfaceFactoryCast(nullptr) {} SurfaceFactoryCast::SurfaceFactoryCast( std::unique_ptr<chromecast::CastEglPlatform> egl_platform) - : egl_implementation_( - base::MakeUnique<GLOzoneEglCast>(std::move(egl_platform))) {} + : osmesa_implementation_(base::MakeUnique<GLOzoneOSMesa>()) { + if (egl_platform) { + egl_implementation_ = + base::MakeUnique<GLOzoneEglCast>(std::move(egl_platform)); + } +} SurfaceFactoryCast::~SurfaceFactoryCast() {} @@ -109,6 +114,8 @@ GLOzone* SurfaceFactoryCast::GetGLOzone(gl::GLImplementation implementation) { switch (implementation) { case gl::kGLImplementationEGLGLES2: return egl_implementation_.get(); + case gl::kGLImplementationOSMesaGL: + return osmesa_implementation_.get(); default: return nullptr; } @@ -122,7 +129,7 @@ std::unique_ptr<SurfaceOzoneCanvas> SurfaceFactoryCast::CreateCanvasForWidget( return base::WrapUnique<SurfaceOzoneCanvas>(new DummySurface()); } -scoped_refptr<NativePixmap> SurfaceFactoryCast::CreateNativePixmap( +scoped_refptr<gfx::NativePixmap> SurfaceFactoryCast::CreateNativePixmap( gfx::AcceleratedWidget widget, gfx::Size size, gfx::BufferFormat format, diff --git a/chromium/ui/ozone/platform/cast/surface_factory_cast.h b/chromium/ui/ozone/platform/cast/surface_factory_cast.h index 23d1e2213d6..c63f38b812c 100644 --- a/chromium/ui/ozone/platform/cast/surface_factory_cast.h +++ b/chromium/ui/ozone/platform/cast/surface_factory_cast.h @@ -33,7 +33,7 @@ class SurfaceFactoryCast : public SurfaceFactoryOzone { GLOzone* GetGLOzone(gl::GLImplementation implementation) override; std::unique_ptr<SurfaceOzoneCanvas> CreateCanvasForWidget( gfx::AcceleratedWidget widget) override; - scoped_refptr<NativePixmap> CreateNativePixmap( + scoped_refptr<gfx::NativePixmap> CreateNativePixmap( gfx::AcceleratedWidget widget, gfx::Size size, gfx::BufferFormat format, @@ -41,6 +41,7 @@ class SurfaceFactoryCast : public SurfaceFactoryOzone { private: std::unique_ptr<GLOzoneEglCast> egl_implementation_; + std::unique_ptr<GLOzone> osmesa_implementation_; DISALLOW_COPY_AND_ASSIGN(SurfaceFactoryCast); }; |