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

Side by Side Diff: mojo/services/native_viewport/native_viewport_controller.cc

Issue 59383011: Factor common code into native_viewport_controller.cc (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix windows build Created 7 years, 1 month 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
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "mojo/services/native_viewport/native_viewport_controller.h" 5 #include "mojo/services/native_viewport/native_viewport_controller.h"
6 6
7 #include "base/bind.h"
7 #include "base/message_loop/message_loop.h" 8 #include "base/message_loop/message_loop.h"
8 #include "base/strings/stringprintf.h" 9 #include "base/strings/stringprintf.h"
9 #include "gpu/command_buffer/client/gles2_interface.h" 10 #include "gpu/command_buffer/client/gl_in_process_context.h"
11 #include "gpu/command_buffer/client/gles2_implementation.h"
10 #include "mojo/services/native_viewport/native_viewport.h" 12 #include "mojo/services/native_viewport/native_viewport.h"
11 #include "ui/events/event.h" 13 #include "ui/events/event.h"
12 14
13 namespace mojo { 15 namespace mojo {
14 namespace services { 16 namespace services {
15 17
16 NativeViewportController::NativeViewportController( 18 NativeViewportController::NativeViewportController(
17 shell::Context* context, Handle pipe) 19 shell::Context* context, Handle pipe)
18 : pipe_(pipe) { 20 : pipe_(pipe) {
19 native_viewport_ = NativeViewport::Create(context, this); 21 native_viewport_ = NativeViewport::Create(context, this);
20 } 22 }
21 NativeViewportController::~NativeViewportController() { 23 NativeViewportController::~NativeViewportController() {
22 } 24 }
23 25
24 void NativeViewportController::Close() { 26 void NativeViewportController::Close() {
25 DCHECK(native_viewport_); 27 DCHECK(native_viewport_);
26 native_viewport_->Close(); 28 native_viewport_->Close();
27 } 29 }
28 30
29 bool NativeViewportController::OnEvent(ui::Event* event) { 31 bool NativeViewportController::OnEvent(ui::Event* event) {
30 ui::LocatedEvent* located = static_cast<ui::LocatedEvent*>(event); 32 ui::LocatedEvent* located = static_cast<ui::LocatedEvent*>(event);
31 SendString(base::StringPrintf("Event @ %d,%d", 33 SendString(base::StringPrintf("Event @ %d,%d",
32 located->location().x(), 34 located->location().x(),
33 located->location().y())); 35 located->location().y()));
34 return false; 36 return false;
35 } 37 }
36 38
37 void NativeViewportController::OnGLContextAvailable( 39 void NativeViewportController::OnAcceleratedWidgetAvailable(
38 gpu::gles2::GLES2Interface* gl) { 40 gfx::AcceleratedWidget widget) {
41 gfx::Size size = native_viewport_->GetSize();
42 gpu::GLInProcessContextAttribs attribs;
43 gl_context_.reset(gpu::GLInProcessContext::CreateContext(
44 false, widget, size, false, attribs, gfx::PreferDiscreteGpu));
45 gl_context_->SetContextLostCallback(base::Bind(
46 &NativeViewportController::OnGLContextLost, base::Unretained(this)));
47
39 // TODO(abarth): Instead of drawing green, we want to send the context over 48 // TODO(abarth): Instead of drawing green, we want to send the context over
40 // pipe_ somehow. 49 // pipe_ somehow.
50 gpu::gles2::GLES2Interface* gl = gl_context_->GetImplementation();
41 gl->ClearColor(0, 1, 0, 0); 51 gl->ClearColor(0, 1, 0, 0);
42 gl->Clear(GL_COLOR_BUFFER_BIT); 52 gl->Clear(GL_COLOR_BUFFER_BIT);
43 gl->SwapBuffers(); 53 gl->SwapBuffers();
44 } 54 }
45 55
46 void NativeViewportController::OnGLContextLost() { 56 void NativeViewportController::OnGLContextLost() {
47 SendString("GL context lost"); 57 SendString("GL context lost");
48 } 58 }
49 59
50 void NativeViewportController::OnResized(const gfx::Size& size) { 60 void NativeViewportController::OnResized(const gfx::Size& size) {
51 SendString(base::StringPrintf("Sized to: %d x %d", 61 SendString(base::StringPrintf("Sized to: %d x %d",
52 size.width(), 62 size.width(),
53 size.height())); 63 size.height()));
54 } 64 }
55 65
56 void NativeViewportController::OnDestroyed() { 66 void NativeViewportController::OnDestroyed() {
57 base::MessageLoop::current()->Quit(); 67 base::MessageLoop::current()->Quit();
58 } 68 }
59 69
60 void NativeViewportController::SendString(const std::string& string) { 70 void NativeViewportController::SendString(const std::string& string) {
61 WriteMessage(pipe_, string.c_str(), string.size()+1, NULL, 0, 71 WriteMessage(pipe_, string.c_str(), string.size()+1, NULL, 0,
62 MOJO_WRITE_MESSAGE_FLAG_NONE); 72 MOJO_WRITE_MESSAGE_FLAG_NONE);
63 } 73 }
64 74
65 } // namespace services 75 } // namespace services
66 } // namespace mojo 76 } // namespace mojo
OLDNEW
« no previous file with comments | « mojo/services/native_viewport/native_viewport_controller.h ('k') | mojo/services/native_viewport/native_viewport_mac.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698