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

Unified Diff: content/gpu/gpu_render_thread.cc

Issue 6793054: Moved code that runs in both the browser and GPU process from content/gpu to content/common/gpu. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 9 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 | « content/gpu/gpu_render_thread.h ('k') | content/gpu/gpu_video_decoder.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/gpu/gpu_render_thread.cc
===================================================================
--- content/gpu/gpu_render_thread.cc (revision 80399)
+++ content/gpu/gpu_render_thread.cc (working copy)
@@ -1,148 +0,0 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "content/gpu/gpu_render_thread.h"
-
-#include <string>
-#include <vector>
-
-#include "app/win/scoped_com_initializer.h"
-#include "base/command_line.h"
-#include "base/threading/worker_pool.h"
-#include "build/build_config.h"
-#include "chrome/common/child_process_logging.h"
-#include "chrome/common/chrome_switches.h"
-#include "content/common/child_process.h"
-#include "content/common/gpu_messages.h"
-#include "content/gpu/gpu_child_thread.h"
-#include "content/gpu/gpu_info_collector.h"
-#include "content/gpu/gpu_watchdog_thread.h"
-#include "ipc/ipc_channel_handle.h"
-#include "ui/gfx/gl/gl_context.h"
-#include "ui/gfx/gl/gl_implementation.h"
-
-GpuRenderThread::GpuRenderThread(IPC::Message::Sender* browser_channel,
- GpuWatchdogThread* gpu_watchdog_thread,
- MessageLoop* io_message_loop,
- base::WaitableEvent* shutdown_event)
- : io_message_loop_(io_message_loop),
- shutdown_event_(shutdown_event),
- browser_channel_(browser_channel),
- watchdog_thread_(gpu_watchdog_thread) {
- DCHECK(browser_channel);
- DCHECK(io_message_loop);
- DCHECK(shutdown_event);
-}
-
-GpuRenderThread::~GpuRenderThread() {
- gpu_channels_.clear();
-}
-
-void GpuRenderThread::RemoveChannel(int renderer_id) {
- gpu_channels_.erase(renderer_id);
-}
-
-bool GpuRenderThread::OnMessageReceived(const IPC::Message& msg) {
- bool msg_is_ok = true;
- bool handled = true;
- IPC_BEGIN_MESSAGE_MAP_EX(GpuRenderThread, msg, msg_is_ok)
- IPC_MESSAGE_HANDLER(GpuMsg_EstablishChannel, OnEstablishChannel)
- IPC_MESSAGE_HANDLER(GpuMsg_CloseChannel, OnCloseChannel)
- IPC_MESSAGE_HANDLER(GpuMsg_CreateViewCommandBuffer,
- OnCreateViewCommandBuffer);
- IPC_MESSAGE_HANDLER(GpuMsg_Synchronize, OnSynchronize)
-#if defined(OS_MACOSX)
- IPC_MESSAGE_HANDLER(GpuMsg_AcceleratedSurfaceBuffersSwappedACK,
- OnAcceleratedSurfaceBuffersSwappedACK)
- IPC_MESSAGE_HANDLER(GpuMsg_DestroyCommandBuffer,
- OnDestroyCommandBuffer)
-#endif
- IPC_MESSAGE_UNHANDLED(handled = false)
- IPC_END_MESSAGE_MAP_EX()
- return handled;
-}
-
-bool GpuRenderThread::Send(IPC::Message* msg) {
- return browser_channel_->Send(msg);
-}
-
-void GpuRenderThread::OnEstablishChannel(int renderer_id) {
- scoped_refptr<GpuChannel> channel;
- IPC::ChannelHandle channel_handle;
- GPUInfo gpu_info;
-
- GpuChannelMap::const_iterator iter = gpu_channels_.find(renderer_id);
- if (iter == gpu_channels_.end())
- channel = new GpuChannel(this, watchdog_thread_, renderer_id);
- else
- channel = iter->second;
-
- DCHECK(channel != NULL);
-
- if (channel->Init(io_message_loop_, shutdown_event_))
- gpu_channels_[renderer_id] = channel;
- else
- channel = NULL;
-
- if (channel.get()) {
- channel_handle.name = channel->GetChannelName();
-#if defined(OS_POSIX)
- // On POSIX, pass the renderer-side FD. Also mark it as auto-close so
- // that it gets closed after it has been sent.
- int renderer_fd = channel->GetRendererFileDescriptor();
- channel_handle.socket = base::FileDescriptor(dup(renderer_fd), true);
-#endif
- }
-
- Send(new GpuHostMsg_ChannelEstablished(channel_handle));
-}
-
-void GpuRenderThread::OnCloseChannel(const IPC::ChannelHandle& channel_handle) {
- for (GpuChannelMap::iterator iter = gpu_channels_.begin();
- iter != gpu_channels_.end(); ++iter) {
- if (iter->second->GetChannelName() == channel_handle.name) {
- gpu_channels_.erase(iter);
- return;
- }
- }
-}
-
-void GpuRenderThread::OnSynchronize() {
- Send(new GpuHostMsg_SynchronizeReply());
-}
-
-void GpuRenderThread::OnCreateViewCommandBuffer(
- gfx::PluginWindowHandle window,
- int32 render_view_id,
- int32 renderer_id,
- const GPUCreateCommandBufferConfig& init_params) {
- int32 route_id = MSG_ROUTING_NONE;
-
- GpuChannelMap::const_iterator iter = gpu_channels_.find(renderer_id);
- if (iter != gpu_channels_.end()) {
- iter->second->CreateViewCommandBuffer(
- window, render_view_id, init_params, &route_id);
- }
-
- Send(new GpuHostMsg_CommandBufferCreated(route_id));
-}
-
-#if defined(OS_MACOSX)
-void GpuRenderThread::OnAcceleratedSurfaceBuffersSwappedACK(
- int renderer_id, int32 route_id, uint64 swap_buffers_count) {
- GpuChannelMap::const_iterator iter = gpu_channels_.find(renderer_id);
- if (iter == gpu_channels_.end())
- return;
- scoped_refptr<GpuChannel> channel = iter->second;
- channel->AcceleratedSurfaceBuffersSwapped(route_id, swap_buffers_count);
-}
-void GpuRenderThread::OnDestroyCommandBuffer(
- int renderer_id, int32 renderer_view_id) {
- GpuChannelMap::const_iterator iter = gpu_channels_.find(renderer_id);
- if (iter == gpu_channels_.end())
- return;
- scoped_refptr<GpuChannel> channel = iter->second;
- channel->DestroyCommandBufferByViewId(renderer_view_id);
-}
-#endif
« no previous file with comments | « content/gpu/gpu_render_thread.h ('k') | content/gpu/gpu_video_decoder.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698