OLD | NEW |
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 #include "gpu/ipc/service/gpu_channel.h" | 5 #include "gpu/ipc/service/gpu_channel.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #if defined(OS_WIN) | 9 #if defined(OS_WIN) |
10 #include <windows.h> | 10 #include <windows.h> |
(...skipping 1027 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1038 tracker); | 1038 tracker); |
1039 } | 1039 } |
1040 | 1040 |
1041 return size; | 1041 return size; |
1042 } | 1042 } |
1043 | 1043 |
1044 scoped_refptr<gl::GLImage> GpuChannel::CreateImageForGpuMemoryBuffer( | 1044 scoped_refptr<gl::GLImage> GpuChannel::CreateImageForGpuMemoryBuffer( |
1045 const gfx::GpuMemoryBufferHandle& handle, | 1045 const gfx::GpuMemoryBufferHandle& handle, |
1046 const gfx::Size& size, | 1046 const gfx::Size& size, |
1047 gfx::BufferFormat format, | 1047 gfx::BufferFormat format, |
1048 uint32_t internalformat) { | 1048 uint32_t internalformat, |
| 1049 SurfaceHandle surface_handle) { |
1049 switch (handle.type) { | 1050 switch (handle.type) { |
1050 case gfx::SHARED_MEMORY_BUFFER: { | 1051 case gfx::SHARED_MEMORY_BUFFER: { |
1051 if (!base::IsValueInRangeForNumericType<size_t>(handle.stride)) | 1052 if (!base::IsValueInRangeForNumericType<size_t>(handle.stride)) |
1052 return nullptr; | 1053 return nullptr; |
1053 scoped_refptr<gl::GLImageSharedMemory> image( | 1054 scoped_refptr<gl::GLImageSharedMemory> image( |
1054 new gl::GLImageSharedMemory(size, internalformat)); | 1055 new gl::GLImageSharedMemory(size, internalformat)); |
1055 if (!image->Initialize(handle.handle, handle.id, format, handle.offset, | 1056 if (!image->Initialize(handle.handle, handle.id, format, handle.offset, |
1056 handle.stride)) { | 1057 handle.stride)) { |
1057 return nullptr; | 1058 return nullptr; |
1058 } | 1059 } |
1059 | 1060 |
1060 return image; | 1061 return image; |
1061 } | 1062 } |
1062 default: { | 1063 default: { |
1063 GpuChannelManager* manager = gpu_channel_manager(); | 1064 GpuChannelManager* manager = gpu_channel_manager(); |
1064 if (!manager->gpu_memory_buffer_factory()) | 1065 if (!manager->gpu_memory_buffer_factory()) |
1065 return nullptr; | 1066 return nullptr; |
1066 | 1067 |
1067 return manager->gpu_memory_buffer_factory() | 1068 return manager->gpu_memory_buffer_factory() |
1068 ->AsImageFactory() | 1069 ->AsImageFactory() |
1069 ->CreateImageForGpuMemoryBuffer(handle, | 1070 ->CreateImageForGpuMemoryBuffer(handle, size, format, internalformat, |
1070 size, | 1071 client_id_, surface_handle); |
1071 format, | |
1072 internalformat, | |
1073 client_id_); | |
1074 } | 1072 } |
1075 } | 1073 } |
1076 } | 1074 } |
1077 | 1075 |
1078 } // namespace gpu | 1076 } // namespace gpu |
OLD | NEW |