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 |