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

Unified Diff: ui/ozone/platform/cast/surface_factory_cast.cc

Issue 1059073002: Loads CastEglPlatform implementation from shared library. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add myself to OWNERS for cast ozone platform. Created 5 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/ozone/platform/cast/surface_factory_cast.h ('k') | ui/ozone/platform/cast/surface_ozone_egl_cast.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/ozone/platform/cast/surface_factory_cast.cc
diff --git a/chromecast/ozone/surface_factory_cast.cc b/ui/ozone/platform/cast/surface_factory_cast.cc
similarity index 76%
rename from chromecast/ozone/surface_factory_cast.cc
rename to ui/ozone/platform/cast/surface_factory_cast.cc
index a7ebe7d0a0d511d311d1401499db0a151df4fc2c..aaab10994be2fae8fb4a34b5915e0806bb8c3133 100644
--- a/chromecast/ozone/surface_factory_cast.cc
+++ b/ui/ozone/platform/cast/surface_factory_cast.cc
@@ -2,21 +2,30 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "chromecast/ozone/surface_factory_cast.h"
+#include "ui/ozone/platform/cast/surface_factory_cast.h"
#include "base/callback_helpers.h"
-#include "chromecast/ozone/cast_egl_platform.h"
-#include "chromecast/ozone/surface_ozone_egl_cast.h"
+#include "chromecast/public/cast_egl_platform.h"
+#include "ui/ozone/platform/cast/surface_ozone_egl_cast.h"
-namespace chromecast {
-namespace ozone {
+using chromecast::CastEglPlatform;
+
+namespace ui {
+namespace {
+CastEglPlatform::Size FromGfxSize(const gfx::Size& size) {
+ return CastEglPlatform::Size(size.width(), size.height());
+}
+gfx::Size ToGfxSize(const CastEglPlatform::Size& size) {
+ return gfx::Size(size.width, size.height);
+}
+}
SurfaceFactoryCast::SurfaceFactoryCast(scoped_ptr<CastEglPlatform> egl_platform)
: state_(kUninitialized),
destroy_window_pending_state_(kNoDestroyPending),
display_type_(0),
window_(0),
- default_display_size_(egl_platform->GetDefaultDisplaySize()),
+ default_display_size_(ToGfxSize(egl_platform->GetDefaultDisplaySize())),
display_size_(default_display_size_),
new_display_size_(default_display_size_),
egl_platform_(egl_platform.Pass()) {
@@ -63,9 +72,10 @@ void SurfaceFactoryCast::CreateDisplayTypeAndWindowIfNeeded() {
}
DCHECK_EQ(state_, kInitialized);
if (!display_type_) {
- display_type_ = egl_platform_->CreateDisplayType(display_size_);
+ CastEglPlatform::Size create_size = FromGfxSize(display_size_);
+ display_type_ = egl_platform_->CreateDisplayType(create_size);
if (display_type_) {
- window_ = egl_platform_->CreateWindow(display_type_, display_size_);
+ window_ = egl_platform_->CreateWindow(display_type_, create_size);
if (!window_) {
DestroyDisplayTypeAndWindow();
state_ = kFailed;
@@ -82,7 +92,7 @@ void SurfaceFactoryCast::CreateDisplayTypeAndWindowIfNeeded() {
intptr_t SurfaceFactoryCast::GetNativeWindow() {
CreateDisplayTypeAndWindowIfNeeded();
- return window_;
+ return reinterpret_cast<intptr_t>(window_);
}
bool SurfaceFactoryCast::ResizeDisplay(gfx::Size size) {
@@ -106,13 +116,13 @@ void SurfaceFactoryCast::DestroyDisplayTypeAndWindow() {
}
}
-scoped_ptr<ui::SurfaceOzoneEGL> SurfaceFactoryCast::CreateEGLSurfaceForWidget(
+scoped_ptr<SurfaceOzoneEGL> SurfaceFactoryCast::CreateEGLSurfaceForWidget(
gfx::AcceleratedWidget widget) {
new_display_size_ = gfx::Size(widget >> 16, widget & 0xFFFF);
new_display_size_.SetToMax(default_display_size_);
destroy_window_pending_state_ = kSurfaceExists;
SendRelinquishResponse();
- return make_scoped_ptr<ui::SurfaceOzoneEGL>(new SurfaceOzoneEglCast(this));
+ return make_scoped_ptr<SurfaceOzoneEGL>(new SurfaceOzoneEglCast(this));
}
void SurfaceFactoryCast::SetToRelinquishDisplay(const base::Closure& callback) {
@@ -168,9 +178,17 @@ bool SurfaceFactoryCast::LoadEGLGLES2Bindings(
}
}
- return egl_platform_->LoadEGLGLES2Bindings(add_gl_library,
- set_gl_get_proc_address);
+ void* lib_egl = egl_platform_->GetEglLibrary();
+ void* lib_gles2 = egl_platform_->GetGles2Library();
+ GLGetProcAddressProc gl_proc = egl_platform_->GetGLProcAddressProc();
+ if (!lib_egl || !lib_gles2 || !gl_proc) {
+ return false;
+ }
+
+ set_gl_get_proc_address.Run(gl_proc);
+ add_gl_library.Run(lib_egl);
+ add_gl_library.Run(lib_gles2);
+ return true;
}
-} // namespace ozone
-} // namespace chromecast
+} // namespace ui
« no previous file with comments | « ui/ozone/platform/cast/surface_factory_cast.h ('k') | ui/ozone/platform/cast/surface_ozone_egl_cast.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698