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

Unified Diff: ui/ozone/demo/egl_demo.cc

Issue 397103002: ozone: Port egl_demo on top of PlatformWindow (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: nits Created 6 years, 5 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 | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/ozone/demo/egl_demo.cc
diff --git a/ui/ozone/demo/egl_demo.cc b/ui/ozone/demo/egl_demo.cc
index 00084fc2ca757b3918a72f2e990ba2d87ce7071e..707cdb190131ca1068856123e777dfcc1c193ec0 100644
--- a/ui/ozone/demo/egl_demo.cc
+++ b/ui/ozone/demo/egl_demo.cc
@@ -4,25 +4,72 @@
#include "base/at_exit.h"
#include "base/command_line.h"
+#include "base/message_loop/message_loop.h"
#include "ui/gfx/geometry/size.h"
#include "ui/gl/gl_bindings.h"
#include "ui/gl/gl_context.h"
#include "ui/gl/gl_surface.h"
#include "ui/ozone/public/ozone_platform.h"
#include "ui/ozone/public/surface_factory_ozone.h"
+#include "ui/platform_window/platform_window.h"
+#include "ui/platform_window/platform_window_delegate.h"
+
+const int kTestWindowWidth = 800;
+const int kTestWindowHeight = 600;
+
+class DemoWindow : public ui::PlatformWindowDelegate {
+ public:
+ DemoWindow() : widget_(gfx::kNullAcceleratedWidget) {
+ platform_window_ = ui::OzonePlatform::GetInstance()->CreatePlatformWindow(
+ this, gfx::Rect(kTestWindowWidth, kTestWindowHeight));
+ }
+ virtual ~DemoWindow() {}
+
+ gfx::AcceleratedWidget GetAcceleratedWidget() {
+ // TODO(spang): We should start rendering asynchronously.
+ CHECK_NE(widget_, gfx::kNullAcceleratedWidget)
+ << "widget not available synchronously";
+ return widget_;
+ }
+
+ gfx::Size GetSize() { return platform_window_->GetBounds().size(); }
+
+ // PlatformWindowDelegate:
+ virtual void OnBoundsChanged(const gfx::Rect& new_bounds) OVERRIDE {}
+ virtual void OnDamageRect(const gfx::Rect& damaged_region) OVERRIDE {}
+ virtual void DispatchEvent(ui::Event* event) OVERRIDE {}
+ virtual void OnCloseRequest() OVERRIDE {}
+ virtual void OnClosed() OVERRIDE {}
+ virtual void OnWindowStateChanged(
+ ui::PlatformWindowState new_state) OVERRIDE {}
+ virtual void OnLostCapture() OVERRIDE {}
+ virtual void OnAcceleratedWidgetAvailable(
+ gfx::AcceleratedWidget widget) OVERRIDE {
+ CHECK_NE(widget, gfx::kNullAcceleratedWidget);
+ widget_ = widget;
+ }
+
+ private:
+ scoped_ptr<ui::PlatformWindow> platform_window_;
+ gfx::AcceleratedWidget widget_;
+
+ DISALLOW_COPY_AND_ASSIGN(DemoWindow);
+};
int main(int argc, char** argv) {
CommandLine::Init(argc, argv);
base::AtExitManager exit_manager;
+ base::MessageLoopForUI message_loop;
+
ui::OzonePlatform::InitializeForUI();
if (!gfx::GLSurface::InitializeOneOff())
LOG(FATAL) << "Failed to initialize GL";
- gfx::AcceleratedWidget widget =
- ui::SurfaceFactoryOzone::GetInstance()->GetAcceleratedWidget();
+ DemoWindow window;
+
scoped_refptr<gfx::GLSurface> surface =
- gfx::GLSurface::CreateViewGLSurface(widget);
+ gfx::GLSurface::CreateViewGLSurface(window.GetAcceleratedWidget());
if (!surface)
LOG(FATAL) << "Failed to create GL surface";
@@ -31,7 +78,8 @@ int main(int argc, char** argv) {
if (!context)
LOG(FATAL) << "Failed to create GL context";
- const gfx::Size window_size(800, 600);
+ gfx::Size window_size = window.GetSize();
+
int iterations = 120;
surface->Resize(window_size);
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698