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

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

Issue 962723002: Change CHROMIUM_image declarations to support multi planar input. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Trybot issues fixed. Created 5 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/image_factory.h" 5 #include "gpu/command_buffer/service/image_factory.h"
6 6
7 #include "gpu/command_buffer/common/capabilities.h" 7 #include "gpu/command_buffer/common/capabilities.h"
8 #include "ui/gl/gl_bindings.h" 8 #include "ui/gl/gl_bindings.h"
9 9
10 namespace gpu { 10 namespace gpu {
11 11
12 ImageFactory::ImageFactory() { 12 ImageFactory::ImageFactory() {
13 } 13 }
14 14
15 ImageFactory::~ImageFactory() { 15 ImageFactory::~ImageFactory() {
16 } 16 }
17 17
18 // static 18 // static
19 int ImageFactory::GpuMemoryBufferCountForImageFormat(unsigned internalformat) {
20 switch (internalformat) {
21 case GL_RGB:
22 case GL_RGBA:
23 case GL_ATC_RGB_AMD:
24 case GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD:
25 case GL_COMPRESSED_RGB_S3TC_DXT1_EXT:
26 case GL_COMPRESSED_RGBA_S3TC_DXT5_EXT:
27 case GL_ETC1_RGB8_OES:
28 return 1;
29 default:
30 NOTREACHED();
31 return 0;
32 }
33 }
34
35 // static
19 gfx::GpuMemoryBuffer::Format ImageFactory::ImageFormatToGpuMemoryBufferFormat( 36 gfx::GpuMemoryBuffer::Format ImageFactory::ImageFormatToGpuMemoryBufferFormat(
20 unsigned internalformat) { 37 unsigned internalformat,
21 switch (internalformat) { 38 int buffer_index) {
reveman 2015/03/12 19:37:22 size_t plane?
22 case GL_RGB: 39 switch (buffer_index) {
reveman 2015/03/12 19:37:23 You can just DCHECK_EQ(plane, 0u) in this patch.
23 return gfx::GpuMemoryBuffer::RGBX_8888; 40 case 0:
24 case GL_RGBA: 41 switch (internalformat) {
25 return gfx::GpuMemoryBuffer::RGBA_8888; 42 case GL_RGB:
26 case GL_ATC_RGB_AMD: 43 case GL_RGBA:
27 return gfx::GpuMemoryBuffer::ATC; 44 return gfx::GpuMemoryBuffer::RGBA_8888;
28 case GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD: 45 case GL_ATC_RGB_AMD:
29 return gfx::GpuMemoryBuffer::ATCIA; 46 return gfx::GpuMemoryBuffer::ATC;
30 case GL_COMPRESSED_RGB_S3TC_DXT1_EXT: 47 case GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD:
31 return gfx::GpuMemoryBuffer::DXT1; 48 return gfx::GpuMemoryBuffer::ATCIA;
32 case GL_COMPRESSED_RGBA_S3TC_DXT5_EXT: 49 case GL_COMPRESSED_RGB_S3TC_DXT1_EXT:
33 return gfx::GpuMemoryBuffer::DXT5; 50 return gfx::GpuMemoryBuffer::DXT1;
34 case GL_ETC1_RGB8_OES: 51 case GL_COMPRESSED_RGBA_S3TC_DXT5_EXT:
35 return gfx::GpuMemoryBuffer::ETC1; 52 return gfx::GpuMemoryBuffer::DXT5;
53 case GL_ETC1_RGB8_OES:
54 return gfx::GpuMemoryBuffer::ETC1;
55 default:
56 NOTREACHED();
57 return gfx::GpuMemoryBuffer::RGBA_8888;
58 }
36 default: 59 default:
37 NOTREACHED(); 60 NOTREACHED();
38 return gfx::GpuMemoryBuffer::RGBA_8888; 61 return gfx::GpuMemoryBuffer::RGBA_8888;
39 } 62 }
40 } 63 }
41 64
42 // static 65 // static
43 gfx::GpuMemoryBuffer::Usage ImageFactory::ImageUsageToGpuMemoryBufferUsage( 66 gfx::GpuMemoryBuffer::Usage ImageFactory::ImageUsageToGpuMemoryBufferUsage(
44 unsigned usage) { 67 unsigned usage) {
45 switch (usage) { 68 switch (usage) {
46 case GL_MAP_CHROMIUM: 69 case GL_MAP_CHROMIUM:
47 return gfx::GpuMemoryBuffer::MAP; 70 return gfx::GpuMemoryBuffer::MAP;
48 case GL_SCANOUT_CHROMIUM: 71 case GL_SCANOUT_CHROMIUM:
49 return gfx::GpuMemoryBuffer::SCANOUT; 72 return gfx::GpuMemoryBuffer::SCANOUT;
50 default: 73 default:
51 NOTREACHED(); 74 NOTREACHED();
52 return gfx::GpuMemoryBuffer::MAP; 75 return gfx::GpuMemoryBuffer::MAP;
53 } 76 }
54 } 77 }
55 78
56 // static 79 // static
57 bool ImageFactory::IsImageFormatCompatibleWithGpuMemoryBufferFormat( 80 bool ImageFactory::IsImageFormatCompatibleWithGpuMemoryBufferFormat(
58 unsigned internalformat, 81 unsigned internalformat,
82 int buffer_index,
59 gfx::GpuMemoryBuffer::Format format) { 83 gfx::GpuMemoryBuffer::Format format) {
60 switch (internalformat) { 84 switch (buffer_index) {
reveman 2015/03/12 19:37:23 DCHECK_EQ(plane, 0u)
emircan 2015/03/12 22:34:26 Done.
61 case GL_RGB: 85 case 0:
62 switch (format) { 86 switch (internalformat) {
63 case gfx::GpuMemoryBuffer::ATC: 87 case GL_RGB:
64 case gfx::GpuMemoryBuffer::ATCIA: 88 switch (format) {
65 case gfx::GpuMemoryBuffer::DXT1: 89 case gfx::GpuMemoryBuffer::ATC:
66 case gfx::GpuMemoryBuffer::DXT5: 90 case gfx::GpuMemoryBuffer::ATCIA:
67 case gfx::GpuMemoryBuffer::ETC1: 91 case gfx::GpuMemoryBuffer::DXT1:
68 case gfx::GpuMemoryBuffer::RGBX_8888: 92 case gfx::GpuMemoryBuffer::DXT5:
69 return true; 93 case gfx::GpuMemoryBuffer::ETC1:
70 case gfx::GpuMemoryBuffer::RGBA_8888: 94 case gfx::GpuMemoryBuffer::RGBX_8888:
71 case gfx::GpuMemoryBuffer::BGRA_8888: 95 return true;
96 case gfx::GpuMemoryBuffer::RGBA_8888:
97 case gfx::GpuMemoryBuffer::BGRA_8888:
98 return false;
99 }
100 case GL_RGBA:
101 switch (format) {
102 case gfx::GpuMemoryBuffer::RGBX_8888:
103 return false;
104 case gfx::GpuMemoryBuffer::ATC:
105 case gfx::GpuMemoryBuffer::ATCIA:
106 case gfx::GpuMemoryBuffer::DXT1:
107 case gfx::GpuMemoryBuffer::DXT5:
108 case gfx::GpuMemoryBuffer::ETC1:
109 case gfx::GpuMemoryBuffer::RGBA_8888:
110 case gfx::GpuMemoryBuffer::BGRA_8888:
111 return true;
112 }
113 default:
114 NOTREACHED();
72 return false; 115 return false;
73 } 116 }
74 NOTREACHED();
75 return false;
76 case GL_RGBA:
77 switch (format) {
78 case gfx::GpuMemoryBuffer::RGBX_8888:
79 return false;
80 case gfx::GpuMemoryBuffer::ATC:
81 case gfx::GpuMemoryBuffer::ATCIA:
82 case gfx::GpuMemoryBuffer::DXT1:
83 case gfx::GpuMemoryBuffer::DXT5:
84 case gfx::GpuMemoryBuffer::ETC1:
85 case gfx::GpuMemoryBuffer::RGBA_8888:
86 case gfx::GpuMemoryBuffer::BGRA_8888:
87 return true;
88 }
89 NOTREACHED();
90 return false;
91 default: 117 default:
92 NOTREACHED(); 118 NOTREACHED();
93 return false; 119 return false;
94 } 120 }
95 } 121 }
96 122
97 // static 123 // static
98 bool ImageFactory::IsGpuMemoryBufferFormatSupported( 124 bool ImageFactory::IsGpuMemoryBufferFormatSupported(
99 gfx::GpuMemoryBuffer::Format format, 125 gfx::GpuMemoryBuffer::Format format,
100 const gpu::Capabilities& capabilities) { 126 const gpu::Capabilities& capabilities) {
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
136 case gfx::GpuMemoryBuffer::BGRA_8888: 162 case gfx::GpuMemoryBuffer::BGRA_8888:
137 case gfx::GpuMemoryBuffer::RGBX_8888: 163 case gfx::GpuMemoryBuffer::RGBX_8888:
138 return true; 164 return true;
139 } 165 }
140 166
141 NOTREACHED(); 167 NOTREACHED();
142 return false; 168 return false;
143 } 169 }
144 170
145 } // namespace gpu 171 } // namespace gpu
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698