summaryrefslogtreecommitdiff
path: root/chromium/ui/ozone/platform/cast
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2017-07-12 14:07:37 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2017-07-17 10:29:26 +0000
commitec02ee4181c49b61fce1c8fb99292dbb8139cc90 (patch)
tree25cde714b2b71eb639d1cd53f5a22e9ba76e14ef /chromium/ui/ozone/platform/cast
parentbb09965444b5bb20b096a291445170876225268d (diff)
downloadqtwebengine-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')
-rw-r--r--chromium/ui/ozone/platform/cast/client_native_pixmap_factory_cast.cc12
-rw-r--r--chromium/ui/ozone/platform/cast/client_native_pixmap_factory_cast.h8
-rw-r--r--chromium/ui/ozone/platform/cast/gl_surface_cast.cc14
-rw-r--r--chromium/ui/ozone/platform/cast/overlay_manager_cast.cc4
-rw-r--r--chromium/ui/ozone/platform/cast/ozone_platform_cast.cc4
-rw-r--r--chromium/ui/ozone/platform/cast/platform_window_cast.h1
-rw-r--r--chromium/ui/ozone/platform/cast/surface_factory_cast.cc19
-rw-r--r--chromium/ui/ozone/platform/cast/surface_factory_cast.h3
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);
};