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

Side by Side Diff: ui/aura/demo/demo_main.cc

Issue 135213003: Ensure GL initialization only happens once, and provide common init path (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: initgl: compile3 Created 6 years, 10 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « ui/aura/demo/DEPS ('k') | ui/compositor/test/context_factories_for_test.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/at_exit.h" 5 #include "base/at_exit.h"
6 #include "base/command_line.h" 6 #include "base/command_line.h"
7 #include "base/i18n/icu_util.h" 7 #include "base/i18n/icu_util.h"
8 #include "base/memory/scoped_ptr.h" 8 #include "base/memory/scoped_ptr.h"
9 #include "base/message_loop/message_loop.h" 9 #include "base/message_loop/message_loop.h"
10 #include "third_party/skia/include/core/SkXfermode.h" 10 #include "third_party/skia/include/core/SkXfermode.h"
11 #include "ui/aura/client/default_capture_client.h" 11 #include "ui/aura/client/default_capture_client.h"
12 #include "ui/aura/client/window_tree_client.h" 12 #include "ui/aura/client/window_tree_client.h"
13 #include "ui/aura/env.h" 13 #include "ui/aura/env.h"
14 #include "ui/aura/root_window.h" 14 #include "ui/aura/root_window.h"
15 #include "ui/aura/test/test_focus_client.h" 15 #include "ui/aura/test/test_focus_client.h"
16 #include "ui/aura/test/test_screen.h" 16 #include "ui/aura/test/test_screen.h"
17 #include "ui/aura/window.h" 17 #include "ui/aura/window.h"
18 #include "ui/aura/window_delegate.h" 18 #include "ui/aura/window_delegate.h"
19 #include "ui/base/hit_test.h" 19 #include "ui/base/hit_test.h"
20 #include "ui/compositor/test/context_factories_for_test.h" 20 #include "ui/compositor/test/context_factories_for_test.h"
21 #include "ui/events/event.h" 21 #include "ui/events/event.h"
22 #include "ui/gfx/canvas.h" 22 #include "ui/gfx/canvas.h"
23 #include "ui/gfx/rect.h" 23 #include "ui/gfx/rect.h"
24 #include "ui/gl/gl_surface.h"
24 25
25 #if defined(USE_X11) 26 #if defined(USE_X11)
26 #include "base/message_loop/message_pump_x11.h" 27 #include "base/message_loop/message_pump_x11.h"
27 #endif 28 #endif
28 29
29 namespace { 30 namespace {
30 31
31 // Trivial WindowDelegate implementation that draws a colored background. 32 // Trivial WindowDelegate implementation that draws a colored background.
32 class DemoWindowDelegate : public aura::WindowDelegate { 33 class DemoWindowDelegate : public aura::WindowDelegate {
33 public: 34 public:
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
101 102
102 scoped_ptr<aura::client::DefaultCaptureClient> capture_client_; 103 scoped_ptr<aura::client::DefaultCaptureClient> capture_client_;
103 104
104 DISALLOW_COPY_AND_ASSIGN(DemoWindowTreeClient); 105 DISALLOW_COPY_AND_ASSIGN(DemoWindowTreeClient);
105 }; 106 };
106 107
107 int DemoMain() { 108 int DemoMain() {
108 // Create the message-loop here before creating the root window. 109 // Create the message-loop here before creating the root window.
109 base::MessageLoopForUI message_loop; 110 base::MessageLoopForUI message_loop;
110 111
112 gfx::GLSurface::InitializeOneOff();
113
111 // The ContextFactory must exist before any Compositors are created. 114 // The ContextFactory must exist before any Compositors are created.
112 bool allow_test_contexts = false; 115 bool allow_test_contexts = false;
113 ui::InitializeContextFactoryForTests(allow_test_contexts); 116 ui::InitializeContextFactoryForTests(allow_test_contexts);
114 117
115 aura::Env::CreateInstance(); 118 aura::Env::CreateInstance();
116 scoped_ptr<aura::TestScreen> test_screen(aura::TestScreen::Create()); 119 scoped_ptr<aura::TestScreen> test_screen(aura::TestScreen::Create());
117 gfx::Screen::SetScreenInstance(gfx::SCREEN_TYPE_NATIVE, test_screen.get()); 120 gfx::Screen::SetScreenInstance(gfx::SCREEN_TYPE_NATIVE, test_screen.get());
118 scoped_ptr<aura::RootWindow> root_window( 121 scoped_ptr<aura::RootWindow> root_window(
119 test_screen->CreateRootWindowForPrimaryDisplay()); 122 test_screen->CreateRootWindowForPrimaryDisplay());
120 scoped_ptr<DemoWindowTreeClient> window_tree_client(new DemoWindowTreeClient( 123 scoped_ptr<DemoWindowTreeClient> window_tree_client(new DemoWindowTreeClient(
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
160 int main(int argc, char** argv) { 163 int main(int argc, char** argv) {
161 CommandLine::Init(argc, argv); 164 CommandLine::Init(argc, argv);
162 165
163 // The exit manager is in charge of calling the dtors of singleton objects. 166 // The exit manager is in charge of calling the dtors of singleton objects.
164 base::AtExitManager exit_manager; 167 base::AtExitManager exit_manager;
165 168
166 base::i18n::InitializeICU(); 169 base::i18n::InitializeICU();
167 170
168 return DemoMain(); 171 return DemoMain();
169 } 172 }
OLDNEW
« no previous file with comments | « ui/aura/demo/DEPS ('k') | ui/compositor/test/context_factories_for_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698