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

Unified Diff: content/common/gpu/image_transport_surface.cc

Issue 9194005: gpu: reference target surfaces through a globally unique surface id. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix more tests Created 8 years, 11 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/common/gpu/image_transport_surface.h ('k') | content/common/gpu/image_transport_surface_linux.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/common/gpu/image_transport_surface.cc
diff --git a/content/common/gpu/image_transport_surface.cc b/content/common/gpu/image_transport_surface.cc
index 12b05e51c8e3f86a4cc7f31789fa1665d2450ed9..ff85e905dc0bb0d0652b440f6532e9bc785b615e 100644
--- a/content/common/gpu/image_transport_surface.cc
+++ b/content/common/gpu/image_transport_surface.cc
@@ -22,15 +22,11 @@ ImageTransportSurface::~ImageTransportSurface() {
ImageTransportHelper::ImageTransportHelper(ImageTransportSurface* surface,
GpuChannelManager* manager,
- int32 render_view_id,
- int32 client_id,
- int32 command_buffer_id,
+ GpuCommandBufferStub* stub,
gfx::PluginWindowHandle handle)
: surface_(surface),
manager_(manager),
- render_view_id_(render_view_id),
- client_id_(client_id),
- command_buffer_id_(command_buffer_id),
+ stub_(stub->AsWeakPtr()),
handle_(handle) {
route_id_ = manager_->GenerateRouteID();
manager_->AddRoute(route_id_, this);
@@ -72,16 +68,14 @@ bool ImageTransportHelper::OnMessageReceived(const IPC::Message& message) {
void ImageTransportHelper::SendAcceleratedSurfaceRelease(
GpuHostMsg_AcceleratedSurfaceRelease_Params params) {
- params.client_id = client_id_;
- params.render_view_id = render_view_id_;
+ params.surface_id = stub_->surface_id();
params.route_id = route_id_;
manager_->Send(new GpuHostMsg_AcceleratedSurfaceRelease(params));
}
void ImageTransportHelper::SendAcceleratedSurfaceNew(
GpuHostMsg_AcceleratedSurfaceNew_Params params) {
- params.client_id = client_id_;
- params.render_view_id = render_view_id_;
+ params.surface_id = stub_->surface_id();
params.route_id = route_id_;
#if defined(OS_MACOSX)
params.window = handle_;
@@ -91,8 +85,7 @@ void ImageTransportHelper::SendAcceleratedSurfaceNew(
void ImageTransportHelper::SendAcceleratedSurfaceBuffersSwapped(
GpuHostMsg_AcceleratedSurfaceBuffersSwapped_Params params) {
- params.client_id = client_id_;
- params.render_view_id = render_view_id_;
+ params.surface_id = stub_->surface_id();
params.route_id = route_id_;
#if defined(OS_MACOSX)
params.window = handle_;
@@ -102,8 +95,7 @@ void ImageTransportHelper::SendAcceleratedSurfaceBuffersSwapped(
void ImageTransportHelper::SendAcceleratedSurfacePostSubBuffer(
GpuHostMsg_AcceleratedSurfacePostSubBuffer_Params params) {
- params.client_id = client_id_;
- params.render_view_id = render_view_id_;
+ params.surface_id = stub_->surface_id();
params.route_id = route_id_;
#if defined(OS_MACOSX)
params.window = handle_;
@@ -112,8 +104,7 @@ void ImageTransportHelper::SendAcceleratedSurfacePostSubBuffer(
}
void ImageTransportHelper::SendResizeView(const gfx::Size& size) {
- manager_->Send(new GpuHostMsg_ResizeView(client_id_,
- render_view_id_,
+ manager_->Send(new GpuHostMsg_ResizeView(stub_->surface_id(),
route_id_,
size));
}
@@ -142,9 +133,9 @@ void ImageTransportHelper::OnPostSubBufferACK() {
}
void ImageTransportHelper::OnNewSurfaceACK(
- uint64 surface_id,
+ uint64 surface_handle,
TransportDIB::Handle shm_handle) {
- surface_->OnNewSurfaceACK(surface_id, shm_handle);
+ surface_->OnNewSurfaceACK(surface_handle, shm_handle);
}
void ImageTransportHelper::OnResizeViewACK() {
@@ -169,16 +160,9 @@ void ImageTransportHelper::Resize(gfx::Size size) {
}
void ImageTransportHelper::SetSwapInterval() {
- GpuChannel* channel = manager_->LookupChannel(client_id_);
- if (!channel)
+ if (!stub_.get())
return;
-
- GpuCommandBufferStub* stub =
- channel->LookupCommandBuffer(command_buffer_id_);
- if (!stub)
- return;
-
- stub->SetSwapInterval();
+ stub_->SetSwapInterval();
}
bool ImageTransportHelper::MakeCurrent() {
@@ -189,42 +173,24 @@ bool ImageTransportHelper::MakeCurrent() {
}
gpu::GpuScheduler* ImageTransportHelper::Scheduler() {
- GpuChannel* channel = manager_->LookupChannel(client_id_);
- if (!channel)
- return NULL;
-
- GpuCommandBufferStub* stub =
- channel->LookupCommandBuffer(command_buffer_id_);
- if (!stub)
+ if (!stub_.get())
return NULL;
-
- return stub->scheduler();
+ return stub_->scheduler();
}
gpu::gles2::GLES2Decoder* ImageTransportHelper::Decoder() {
- GpuChannel* channel = manager_->LookupChannel(client_id_);
- if (!channel)
- return NULL;
-
- GpuCommandBufferStub* stub =
- channel->LookupCommandBuffer(command_buffer_id_);
- if (!stub)
+ if (!stub_.get())
return NULL;
-
- return stub->decoder();
+ return stub_->decoder();
}
PassThroughImageTransportSurface::PassThroughImageTransportSurface(
GpuChannelManager* manager,
- int32 render_view_id,
- int32 client_id,
- int32 command_buffer_id,
+ GpuCommandBufferStub* stub,
gfx::GLSurface* surface) : GLSurfaceAdapter(surface) {
helper_.reset(new ImageTransportHelper(this,
manager,
- render_view_id,
- client_id,
- command_buffer_id,
+ stub,
gfx::kNullPluginWindow));
}
@@ -242,7 +208,7 @@ void PassThroughImageTransportSurface::Destroy() {
}
void PassThroughImageTransportSurface::OnNewSurfaceACK(
- uint64 surface_id, TransportDIB::Handle surface_handle) {
+ uint64 surface_handle, TransportDIB::Handle shm_handle) {
}
bool PassThroughImageTransportSurface::SwapBuffers() {
@@ -251,7 +217,7 @@ bool PassThroughImageTransportSurface::SwapBuffers() {
// Round trip to the browser UI thread, for throttling, by sending a dummy
// SwapBuffers message.
GpuHostMsg_AcceleratedSurfaceBuffersSwapped_Params params;
- params.surface_id = 0;
+ params.surface_handle = 0;
#if defined(OS_WIN)
params.size = GetSize();
#endif
@@ -268,7 +234,7 @@ bool PassThroughImageTransportSurface::PostSubBuffer(
// Round trip to the browser UI thread, for throttling, by sending a dummy
// PostSubBuffer message.
GpuHostMsg_AcceleratedSurfacePostSubBuffer_Params params;
- params.surface_id = 0;
+ params.surface_handle = 0;
params.x = x;
params.y = y;
params.width = width;
« no previous file with comments | « content/common/gpu/image_transport_surface.h ('k') | content/common/gpu/image_transport_surface_linux.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698