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

Side by Side Diff: mojo/gles2/gles2_support_impl.cc

Issue 384513003: Remove RequestAnimationFrame from mojo, add delayed tasks to RunLoop (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 6 years, 4 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/gles2/gles2_support_impl.h" 5 #include "mojo/gles2/gles2_support_impl.h"
6 6
7 #include "base/lazy_instance.h" 7 #include "base/lazy_instance.h"
8 #include "gpu/command_buffer/client/gles2_interface.h" 8 #include "gpu/command_buffer/client/gles2_interface.h"
9 #include "mojo/gles2/gles2_context.h" 9 #include "mojo/gles2/gles2_context.h"
10 #include "mojo/public/gles2/gles2_interface.h" 10 #include "mojo/public/gles2/gles2_interface.h"
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 } 54 }
55 55
56 void GLES2SupportImpl::Terminate() { 56 void GLES2SupportImpl::Terminate() {
57 DCHECK(async_waiter_); 57 DCHECK(async_waiter_);
58 async_waiter_ = NULL; 58 async_waiter_ = NULL;
59 } 59 }
60 60
61 MojoGLES2Context GLES2SupportImpl::CreateContext( 61 MojoGLES2Context GLES2SupportImpl::CreateContext(
62 MessagePipeHandle handle, 62 MessagePipeHandle handle,
63 MojoGLES2ContextLost lost_callback, 63 MojoGLES2ContextLost lost_callback,
64 MojoGLES2DrawAnimationFrame animation_callback,
65 void* closure) { 64 void* closure) {
66 ScopedMessagePipeHandle scoped_handle(handle); 65 ScopedMessagePipeHandle scoped_handle(handle);
67 scoped_ptr<GLES2Context> client(new GLES2Context(async_waiter_, 66 scoped_ptr<GLES2Context> client(new GLES2Context(async_waiter_,
68 scoped_handle.Pass(), 67 scoped_handle.Pass(),
69 lost_callback, 68 lost_callback,
70 animation_callback,
71 closure)); 69 closure));
72 if (!client->Initialize()) 70 if (!client->Initialize())
73 client.reset(); 71 client.reset();
74 return client.release(); 72 return client.release();
75 } 73 }
76 74
77 void GLES2SupportImpl::DestroyContext(MojoGLES2Context context) { 75 void GLES2SupportImpl::DestroyContext(MojoGLES2Context context) {
78 delete static_cast<GLES2Context*>(context); 76 delete static_cast<GLES2Context*>(context);
79 } 77 }
80 78
81 void GLES2SupportImpl::MakeCurrent(MojoGLES2Context context) { 79 void GLES2SupportImpl::MakeCurrent(MojoGLES2Context context) {
82 gpu::gles2::GLES2Interface* interface = NULL; 80 gpu::gles2::GLES2Interface* interface = NULL;
83 if (context) { 81 if (context) {
84 GLES2Context* client = static_cast<GLES2Context*>(context); 82 GLES2Context* client = static_cast<GLES2Context*>(context);
85 interface = client->interface(); 83 interface = client->interface();
86 DCHECK(interface); 84 DCHECK(interface);
87 } 85 }
88 g_gles2_interface.Get().set_gpu_interface(interface); 86 g_gles2_interface.Get().set_gpu_interface(interface);
89 } 87 }
90 88
91 void GLES2SupportImpl::SwapBuffers() { 89 void GLES2SupportImpl::SwapBuffers() {
92 g_gles2_interface.Get().gpu_interface()->SwapBuffers(); 90 g_gles2_interface.Get().gpu_interface()->SwapBuffers();
93 } 91 }
94 92
95 void GLES2SupportImpl::RequestAnimationFrames(MojoGLES2Context context) {
96 static_cast<GLES2Context*>(context)->RequestAnimationFrames();
97 }
98
99 void GLES2SupportImpl::CancelAnimationFrames(MojoGLES2Context context) {
100 static_cast<GLES2Context*>(context)->CancelAnimationFrames();
101 }
102
103 void* GLES2SupportImpl::GetGLES2Interface(MojoGLES2Context context) { 93 void* GLES2SupportImpl::GetGLES2Interface(MojoGLES2Context context) {
104 return static_cast<GLES2Context*>(context)->interface(); 94 return static_cast<GLES2Context*>(context)->interface();
105 } 95 }
106 96
107 void* GLES2SupportImpl::GetContextSupport(MojoGLES2Context context) { 97 void* GLES2SupportImpl::GetContextSupport(MojoGLES2Context context) {
108 return static_cast<GLES2Context*>(context)->context_support(); 98 return static_cast<GLES2Context*>(context)->context_support();
109 } 99 }
110 100
111 GLES2Interface* GLES2SupportImpl::GetGLES2InterfaceForCurrentContext() { 101 GLES2Interface* GLES2SupportImpl::GetGLES2InterfaceForCurrentContext() {
112 return &g_gles2_interface.Get(); 102 return &g_gles2_interface.Get();
113 } 103 }
114 104
115 } // namespace gles2 105 } // namespace gles2
116 } // namespace mojo 106 } // namespace mojo
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698