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

Unified Diff: mojo/services/gles2/gpu_impl.cc

Issue 739493002: Introduce command buffer control thread (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Route echo better Created 6 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « mojo/services/gles2/gpu_impl.h ('k') | mojo/services/native_viewport/main.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: mojo/services/gles2/gpu_impl.cc
diff --git a/mojo/services/gles2/gpu_impl.cc b/mojo/services/gles2/gpu_impl.cc
index 593c614539035ef60416c8b78e92a35ca00561ed..7b3340667bd3f711d800c285cc5bb5a03101a619 100644
--- a/mojo/services/gles2/gpu_impl.cc
+++ b/mojo/services/gles2/gpu_impl.cc
@@ -5,20 +5,28 @@
#include "mojo/services/gles2/gpu_impl.h"
#include "gpu/command_buffer/service/mailbox_manager.h"
+#include "gpu/command_buffer/service/mailbox_manager_impl.h"
#include "mojo/converters/geometry/geometry_type_converters.h"
#include "mojo/services/gles2/command_buffer_driver.h"
#include "mojo/services/gles2/command_buffer_impl.h"
#include "ui/gl/gl_share_group.h"
+#include "ui/gl/gl_surface.h"
namespace mojo {
-GpuImpl::GpuImpl(
- InterfaceRequest<Gpu> request,
- const scoped_refptr<gfx::GLShareGroup>& share_group,
- const scoped_refptr<gpu::gles2::MailboxManager> mailbox_manager)
- : share_group_(share_group),
- mailbox_manager_(mailbox_manager),
- binding_(this, request.Pass()) {
+GpuImpl::State::State()
+ : control_thread_("gpu_command_buffer_control"),
+ share_group_(new gfx::GLShareGroup),
+ mailbox_manager_(new gpu::gles2::MailboxManagerImpl) {
+ control_thread_.Start();
+}
+
+GpuImpl::State::~State() {
+}
+
+GpuImpl::GpuImpl(InterfaceRequest<Gpu> request,
+ const scoped_refptr<State>& state)
+ : binding_(this, request.Pass()), state_(state) {
}
GpuImpl::~GpuImpl() {
@@ -30,17 +38,17 @@ void GpuImpl::CreateOnscreenGLES2Context(
InterfaceRequest<CommandBuffer> request) {
gfx::AcceleratedWidget widget = bit_cast<gfx::AcceleratedWidget>(
static_cast<uintptr_t>(native_viewport_id));
- new CommandBufferImpl(request.Pass(),
+ new CommandBufferImpl(request.Pass(), state_->control_task_runner(),
make_scoped_ptr(new CommandBufferDriver(
- widget, size.To<gfx::Size>(), share_group_.get(),
- mailbox_manager_.get())));
+ widget, size.To<gfx::Size>(), state_->share_group(),
+ state_->mailbox_manager())));
}
void GpuImpl::CreateOffscreenGLES2Context(
InterfaceRequest<CommandBuffer> request) {
- new CommandBufferImpl(request.Pass(),
+ new CommandBufferImpl(request.Pass(), state_->control_task_runner(),
make_scoped_ptr(new CommandBufferDriver(
- share_group_.get(), mailbox_manager_.get())));
+ state_->share_group(), state_->mailbox_manager())));
}
} // namespace mojo
« no previous file with comments | « mojo/services/gles2/gpu_impl.h ('k') | mojo/services/native_viewport/main.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698