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

Side by Side Diff: gpu/command_buffer/service/in_process_command_buffer.cc

Issue 1417363006: ui: Add support for creating GLImage instances from shared memory pools. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@usage-rename
Patch Set: static_cast<off_t> to make windows build happy Created 5 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 unified diff | Download patch
« no previous file with comments | « content/common/gpu/gpu_channel.cc ('k') | ui/gfx/gpu_memory_buffer.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "gpu/command_buffer/service/in_process_command_buffer.h" 5 #include "gpu/command_buffer/service/in_process_command_buffer.h"
6 6
7 #include <queue> 7 #include <queue>
8 #include <set> 8 #include <set>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
91 } 91 }
92 92
93 gfx::GpuMemoryBufferHandle ShareGpuMemoryBufferToGpuThread( 93 gfx::GpuMemoryBufferHandle ShareGpuMemoryBufferToGpuThread(
94 const gfx::GpuMemoryBufferHandle& source_handle, 94 const gfx::GpuMemoryBufferHandle& source_handle,
95 bool* requires_sync_point) { 95 bool* requires_sync_point) {
96 switch (source_handle.type) { 96 switch (source_handle.type) {
97 case gfx::SHARED_MEMORY_BUFFER: { 97 case gfx::SHARED_MEMORY_BUFFER: {
98 gfx::GpuMemoryBufferHandle handle; 98 gfx::GpuMemoryBufferHandle handle;
99 handle.type = gfx::SHARED_MEMORY_BUFFER; 99 handle.type = gfx::SHARED_MEMORY_BUFFER;
100 handle.handle = ShareToGpuThread(source_handle.handle); 100 handle.handle = ShareToGpuThread(source_handle.handle);
101 handle.offset = source_handle.offset;
101 *requires_sync_point = false; 102 *requires_sync_point = false;
102 return handle; 103 return handle;
103 } 104 }
104 case gfx::IO_SURFACE_BUFFER: 105 case gfx::IO_SURFACE_BUFFER:
105 case gfx::SURFACE_TEXTURE_BUFFER: 106 case gfx::SURFACE_TEXTURE_BUFFER:
106 case gfx::OZONE_NATIVE_PIXMAP: 107 case gfx::OZONE_NATIVE_PIXMAP:
107 *requires_sync_point = true; 108 *requires_sync_point = true;
108 return source_handle; 109 return source_handle;
109 default: 110 default:
110 NOTREACHED(); 111 NOTREACHED();
(...skipping 595 matching lines...) Expand 10 before | Expand all | Expand 10 after
706 DCHECK(image_manager); 707 DCHECK(image_manager);
707 if (image_manager->LookupImage(id)) { 708 if (image_manager->LookupImage(id)) {
708 LOG(ERROR) << "Image already exists with same ID."; 709 LOG(ERROR) << "Image already exists with same ID.";
709 return; 710 return;
710 } 711 }
711 712
712 switch (handle.type) { 713 switch (handle.type) {
713 case gfx::SHARED_MEMORY_BUFFER: { 714 case gfx::SHARED_MEMORY_BUFFER: {
714 scoped_refptr<gfx::GLImageSharedMemory> image( 715 scoped_refptr<gfx::GLImageSharedMemory> image(
715 new gfx::GLImageSharedMemory(size, internalformat)); 716 new gfx::GLImageSharedMemory(size, internalformat));
716 if (!image->Initialize(handle.handle, handle.id, format)) { 717 if (!image->Initialize(handle.handle, handle.id, format, handle.offset)) {
717 LOG(ERROR) << "Failed to initialize image."; 718 LOG(ERROR) << "Failed to initialize image.";
718 return; 719 return;
719 } 720 }
720 721
721 image_manager->AddImage(image.get(), id); 722 image_manager->AddImage(image.get(), id);
722 break; 723 break;
723 } 724 }
724 default: { 725 default: {
725 if (!image_factory_) { 726 if (!image_factory_) {
726 LOG(ERROR) << "Image factory missing but required by buffer type."; 727 LOG(ERROR) << "Image factory missing but required by buffer type.";
(...skipping 365 matching lines...) Expand 10 before | Expand all | Expand 10 after
1092 framebuffer_completeness_cache_ = 1093 framebuffer_completeness_cache_ =
1093 new gpu::gles2::FramebufferCompletenessCache; 1094 new gpu::gles2::FramebufferCompletenessCache;
1094 return framebuffer_completeness_cache_; 1095 return framebuffer_completeness_cache_;
1095 } 1096 }
1096 1097
1097 SyncPointManager* GpuInProcessThread::sync_point_manager() { 1098 SyncPointManager* GpuInProcessThread::sync_point_manager() {
1098 return sync_point_manager_; 1099 return sync_point_manager_;
1099 } 1100 }
1100 1101
1101 } // namespace gpu 1102 } // namespace gpu
OLDNEW
« no previous file with comments | « content/common/gpu/gpu_channel.cc ('k') | ui/gfx/gpu_memory_buffer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698