Index: ui/ozone/platform/drm/ozone_platform_drm.cc |
diff --git a/ui/ozone/platform/drm/ozone_platform_drm.cc b/ui/ozone/platform/drm/ozone_platform_drm.cc |
index fb22bdcbbd466613b26409e2db346acac6611814..0006b71a3f4ac6223eb08a8d97623e7a48696bc2 100644 |
--- a/ui/ozone/platform/drm/ozone_platform_drm.cc |
+++ b/ui/ozone/platform/drm/ozone_platform_drm.cc |
@@ -27,8 +27,10 @@ |
#include "ui/ozone/platform/drm/host/drm_native_display_delegate.h" |
#include "ui/ozone/platform/drm/host/drm_window_host.h" |
#include "ui/ozone/platform/drm/host/drm_window_host_manager.h" |
+#include "ui/ozone/public/ozone_client.h" |
#include "ui/ozone/public/ozone_gpu_test_helper.h" |
#include "ui/ozone/public/ozone_platform.h" |
+#include "ui/ozone/public/surface_client_factory_ozone.h" |
#if defined(USE_XKBCOMMON) |
#include "ui/events/ozone/layout/xkb/xkb_evdev_codes.h" |
@@ -147,6 +149,32 @@ class OzonePlatformDrm : public OzonePlatform { |
DISALLOW_COPY_AND_ASSIGN(OzonePlatformDrm); |
}; |
+class OzoneClientDrm : public OzoneClient { |
+ public: |
+ OzoneClientDrm() {} |
+ ~OzoneClientDrm() override {} |
+ |
+ // OzoneClient: |
+ SurfaceClientFactoryOzone* GetSurfaceClientFactoryOzone() override { |
+ return surface_client_.get(); |
+ } |
+ |
+ void InitializeUI() override { |
+ if (!surface_client_) |
+ surface_client_.reset(new SurfaceClientFactoryOzone); |
+ } |
+ |
+ void InitializeRenderer() override { |
+ if (!surface_client_) |
+ surface_client_.reset(new SurfaceClientFactoryOzone); |
+ } |
+ |
+ private: |
+ scoped_ptr<SurfaceClientFactoryOzone> surface_client_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(OzoneClientDrm); |
+}; |
+ |
} // namespace |
OzonePlatform* CreateOzonePlatformDri() { |
@@ -157,4 +185,12 @@ OzonePlatform* CreateOzonePlatformDrm() { |
return new OzonePlatformDrm; |
} |
+OzoneClient* CreateOzoneClientDri() { |
+ return new OzoneClientDrm; |
+} |
+ |
+OzoneClient* CreateOzoneClientDrm() { |
+ return new OzoneClientDrm; |
+} |
+ |
} // namespace ui |