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

Side by Side Diff: content/common/gpu/gpu_channel.cc

Issue 331723003: gpu: Remove Create/DeleteImage IPC by adding an X11_PIXMAP_BUFFER GpuMemoryBuffer type. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 6 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 #if defined(OS_WIN) 5 #if defined(OS_WIN)
6 #include <windows.h> 6 #include <windows.h>
7 #endif 7 #endif
8 8
9 #include "content/common/gpu/gpu_channel.h" 9 #include "content/common/gpu/gpu_channel.h"
10 10
(...skipping 560 matching lines...) Expand 10 before | Expand all | Expand 10 after
571 return false; 571 return false;
572 } 572 }
573 stubs_.AddWithID(stub.release(), route_id); 573 stubs_.AddWithID(stub.release(), route_id);
574 return true; 574 return true;
575 } 575 }
576 576
577 GpuCommandBufferStub* GpuChannel::LookupCommandBuffer(int32 route_id) { 577 GpuCommandBufferStub* GpuChannel::LookupCommandBuffer(int32 route_id) {
578 return stubs_.Lookup(route_id); 578 return stubs_.Lookup(route_id);
579 } 579 }
580 580
581 void GpuChannel::CreateImage( 581 bool GpuChannel::CreateImage(
582 gfx::PluginWindowHandle window, 582 const gfx::GpuMemoryBufferHandle& handle,
583 int32 image_id, 583 const gfx::Size& size,
584 gfx::Size* size) { 584 unsigned internalformat,
585 int32 image_id) {
585 TRACE_EVENT1("gpu", 586 TRACE_EVENT1("gpu",
586 "GpuChannel::CreateImage", 587 "GpuChannel::CreateImage",
587 "image_id", 588 "image_id",
588 image_id); 589 image_id);
589 590
590 *size = gfx::Size();
591
592 if (image_manager_->LookupImage(image_id)) { 591 if (image_manager_->LookupImage(image_id)) {
593 LOG(ERROR) << "CreateImage failed, image_id already in use."; 592 LOG(ERROR) << "CreateImage failed, image_id already in use.";
594 return; 593 return false;
595 } 594 }
596 595
597 scoped_refptr<gfx::GLImage> image = gfx::GLImage::CreateGLImage(window); 596 scoped_refptr<gfx::GLImage> image =
597 gfx::GLImage::CreateGLImageForGpuMemoryBuffer(
598 handle, size, internalformat);
598 if (!image.get()) 599 if (!image.get())
599 return; 600 return false;
600 601
601 image_manager_->AddImage(image.get(), image_id); 602 image_manager_->AddImage(image.get(), image_id);
602 *size = image->GetSize(); 603 return true;
603 } 604 }
604 605
605 void GpuChannel::DeleteImage(int32 image_id) { 606 void GpuChannel::DeleteImage(int32 image_id) {
606 TRACE_EVENT1("gpu", 607 TRACE_EVENT1("gpu",
607 "GpuChannel::DeleteImage", 608 "GpuChannel::DeleteImage",
608 "image_id", 609 "image_id",
609 image_id); 610 image_id);
610 611
611 image_manager_->RemoveImage(image_id); 612 image_manager_->RemoveImage(image_id);
612 } 613 }
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after
836 uint64 GpuChannel::GetMemoryUsage() { 837 uint64 GpuChannel::GetMemoryUsage() {
837 uint64 size = 0; 838 uint64 size = 0;
838 for (StubMap::Iterator<GpuCommandBufferStub> it(&stubs_); 839 for (StubMap::Iterator<GpuCommandBufferStub> it(&stubs_);
839 !it.IsAtEnd(); it.Advance()) { 840 !it.IsAtEnd(); it.Advance()) {
840 size += it.GetCurrentValue()->GetMemoryUsage(); 841 size += it.GetCurrentValue()->GetMemoryUsage();
841 } 842 }
842 return size; 843 return size;
843 } 844 }
844 845
845 } // namespace content 846 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698