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

Side by Side Diff: ui/gl/gl_image_memory.cc

Issue 2689453002: Introduce gfx::BufferFormat::YUYV_422
Patch Set: rebase to ToT Created 3 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
« no previous file with comments | « ui/gl/gl_image_io_surface.mm ('k') | ui/gl/gl_image_native_pixmap.cc » ('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 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 "ui/gl/gl_image_memory.h" 5 #include "ui/gl/gl_image_memory.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/numerics/safe_conversions.h" 10 #include "base/numerics/safe_conversions.h"
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
50 case gfx::BufferFormat::RGBA_4444: 50 case gfx::BufferFormat::RGBA_4444:
51 case gfx::BufferFormat::RGBX_8888: 51 case gfx::BufferFormat::RGBX_8888:
52 case gfx::BufferFormat::RGBA_8888: 52 case gfx::BufferFormat::RGBA_8888:
53 case gfx::BufferFormat::BGRX_8888: 53 case gfx::BufferFormat::BGRX_8888:
54 case gfx::BufferFormat::BGRA_8888: 54 case gfx::BufferFormat::BGRA_8888:
55 case gfx::BufferFormat::RGBA_F16: 55 case gfx::BufferFormat::RGBA_F16:
56 return true; 56 return true;
57 case gfx::BufferFormat::YVU_420: 57 case gfx::BufferFormat::YVU_420:
58 case gfx::BufferFormat::YUV_420_BIPLANAR: 58 case gfx::BufferFormat::YUV_420_BIPLANAR:
59 case gfx::BufferFormat::UYVY_422: 59 case gfx::BufferFormat::UYVY_422:
60 case gfx::BufferFormat::YUYV_422:
60 return false; 61 return false;
61 } 62 }
62 63
63 NOTREACHED(); 64 NOTREACHED();
64 return false; 65 return false;
65 } 66 }
66 67
67 bool IsCompressedFormat(gfx::BufferFormat format) { 68 bool IsCompressedFormat(gfx::BufferFormat format) {
68 switch (format) { 69 switch (format) {
69 case gfx::BufferFormat::ATC: 70 case gfx::BufferFormat::ATC:
70 case gfx::BufferFormat::ATCIA: 71 case gfx::BufferFormat::ATCIA:
71 case gfx::BufferFormat::DXT1: 72 case gfx::BufferFormat::DXT1:
72 case gfx::BufferFormat::DXT5: 73 case gfx::BufferFormat::DXT5:
73 case gfx::BufferFormat::ETC1: 74 case gfx::BufferFormat::ETC1:
74 return true; 75 return true;
75 case gfx::BufferFormat::R_8: 76 case gfx::BufferFormat::R_8:
76 case gfx::BufferFormat::RG_88: 77 case gfx::BufferFormat::RG_88:
77 case gfx::BufferFormat::BGR_565: 78 case gfx::BufferFormat::BGR_565:
78 case gfx::BufferFormat::RGBA_4444: 79 case gfx::BufferFormat::RGBA_4444:
79 case gfx::BufferFormat::RGBX_8888: 80 case gfx::BufferFormat::RGBX_8888:
80 case gfx::BufferFormat::RGBA_8888: 81 case gfx::BufferFormat::RGBA_8888:
81 case gfx::BufferFormat::BGRX_8888: 82 case gfx::BufferFormat::BGRX_8888:
82 case gfx::BufferFormat::BGRA_8888: 83 case gfx::BufferFormat::BGRA_8888:
83 case gfx::BufferFormat::RGBA_F16: 84 case gfx::BufferFormat::RGBA_F16:
84 return false; 85 return false;
85 case gfx::BufferFormat::YVU_420: 86 case gfx::BufferFormat::YVU_420:
86 case gfx::BufferFormat::YUV_420_BIPLANAR: 87 case gfx::BufferFormat::YUV_420_BIPLANAR:
87 case gfx::BufferFormat::UYVY_422: 88 case gfx::BufferFormat::UYVY_422:
89 case gfx::BufferFormat::YUYV_422:
88 NOTREACHED(); 90 NOTREACHED();
89 return false; 91 return false;
90 } 92 }
91 93
92 NOTREACHED(); 94 NOTREACHED();
93 return false; 95 return false;
94 } 96 }
95 97
96 GLenum TextureFormat(gfx::BufferFormat format) { 98 GLenum TextureFormat(gfx::BufferFormat format) {
97 switch (format) { 99 switch (format) {
(...skipping 17 matching lines...) Expand all
115 return GL_RGBA; 117 return GL_RGBA;
116 case gfx::BufferFormat::BGRA_8888: 118 case gfx::BufferFormat::BGRA_8888:
117 return GL_BGRA_EXT; 119 return GL_BGRA_EXT;
118 case gfx::BufferFormat::BGR_565: 120 case gfx::BufferFormat::BGR_565:
119 case gfx::BufferFormat::RGBX_8888: 121 case gfx::BufferFormat::RGBX_8888:
120 case gfx::BufferFormat::BGRX_8888: 122 case gfx::BufferFormat::BGRX_8888:
121 return GL_RGB; 123 return GL_RGB;
122 case gfx::BufferFormat::YVU_420: 124 case gfx::BufferFormat::YVU_420:
123 case gfx::BufferFormat::YUV_420_BIPLANAR: 125 case gfx::BufferFormat::YUV_420_BIPLANAR:
124 case gfx::BufferFormat::UYVY_422: 126 case gfx::BufferFormat::UYVY_422:
127 case gfx::BufferFormat::YUYV_422:
125 NOTREACHED(); 128 NOTREACHED();
126 return 0; 129 return 0;
127 } 130 }
128 131
129 NOTREACHED(); 132 NOTREACHED();
130 return 0; 133 return 0;
131 } 134 }
132 135
133 GLenum DataFormat(gfx::BufferFormat format) { 136 GLenum DataFormat(gfx::BufferFormat format) {
134 switch (format) { 137 switch (format) {
(...skipping 10 matching lines...) Expand all
145 case gfx::BufferFormat::RG_88: 148 case gfx::BufferFormat::RG_88:
146 case gfx::BufferFormat::ATC: 149 case gfx::BufferFormat::ATC:
147 case gfx::BufferFormat::ATCIA: 150 case gfx::BufferFormat::ATCIA:
148 case gfx::BufferFormat::DXT1: 151 case gfx::BufferFormat::DXT1:
149 case gfx::BufferFormat::DXT5: 152 case gfx::BufferFormat::DXT5:
150 case gfx::BufferFormat::ETC1: 153 case gfx::BufferFormat::ETC1:
151 return TextureFormat(format); 154 return TextureFormat(format);
152 case gfx::BufferFormat::YVU_420: 155 case gfx::BufferFormat::YVU_420:
153 case gfx::BufferFormat::YUV_420_BIPLANAR: 156 case gfx::BufferFormat::YUV_420_BIPLANAR:
154 case gfx::BufferFormat::UYVY_422: 157 case gfx::BufferFormat::UYVY_422:
158 case gfx::BufferFormat::YUYV_422:
155 NOTREACHED(); 159 NOTREACHED();
156 return 0; 160 return 0;
157 } 161 }
158 162
159 NOTREACHED(); 163 NOTREACHED();
160 return 0; 164 return 0;
161 } 165 }
162 166
163 GLenum DataType(gfx::BufferFormat format) { 167 GLenum DataType(gfx::BufferFormat format) {
164 switch (format) { 168 switch (format) {
(...skipping 11 matching lines...) Expand all
176 case gfx::BufferFormat::RGBA_F16: 180 case gfx::BufferFormat::RGBA_F16:
177 return GL_HALF_FLOAT_OES; 181 return GL_HALF_FLOAT_OES;
178 case gfx::BufferFormat::ATC: 182 case gfx::BufferFormat::ATC:
179 case gfx::BufferFormat::ATCIA: 183 case gfx::BufferFormat::ATCIA:
180 case gfx::BufferFormat::DXT1: 184 case gfx::BufferFormat::DXT1:
181 case gfx::BufferFormat::DXT5: 185 case gfx::BufferFormat::DXT5:
182 case gfx::BufferFormat::ETC1: 186 case gfx::BufferFormat::ETC1:
183 case gfx::BufferFormat::YVU_420: 187 case gfx::BufferFormat::YVU_420:
184 case gfx::BufferFormat::YUV_420_BIPLANAR: 188 case gfx::BufferFormat::YUV_420_BIPLANAR:
185 case gfx::BufferFormat::UYVY_422: 189 case gfx::BufferFormat::UYVY_422:
190 case gfx::BufferFormat::YUYV_422:
186 NOTREACHED(); 191 NOTREACHED();
187 return 0; 192 return 0;
188 } 193 }
189 194
190 NOTREACHED(); 195 NOTREACHED();
191 return 0; 196 return 0;
192 } 197 }
193 198
194 GLint DataRowLength(size_t stride, gfx::BufferFormat format) { 199 GLint DataRowLength(size_t stride, gfx::BufferFormat format) {
195 switch (format) { 200 switch (format) {
(...skipping 11 matching lines...) Expand all
207 case gfx::BufferFormat::R_8: 212 case gfx::BufferFormat::R_8:
208 return base::checked_cast<GLint>(stride); 213 return base::checked_cast<GLint>(stride);
209 case gfx::BufferFormat::ATC: 214 case gfx::BufferFormat::ATC:
210 case gfx::BufferFormat::ATCIA: 215 case gfx::BufferFormat::ATCIA:
211 case gfx::BufferFormat::DXT1: 216 case gfx::BufferFormat::DXT1:
212 case gfx::BufferFormat::DXT5: 217 case gfx::BufferFormat::DXT5:
213 case gfx::BufferFormat::ETC1: 218 case gfx::BufferFormat::ETC1:
214 case gfx::BufferFormat::YVU_420: 219 case gfx::BufferFormat::YVU_420:
215 case gfx::BufferFormat::YUV_420_BIPLANAR: 220 case gfx::BufferFormat::YUV_420_BIPLANAR:
216 case gfx::BufferFormat::UYVY_422: 221 case gfx::BufferFormat::UYVY_422:
222 case gfx::BufferFormat::YUYV_422:
217 NOTREACHED(); 223 NOTREACHED();
218 return 0; 224 return 0;
219 } 225 }
220 226
221 NOTREACHED(); 227 NOTREACHED();
222 return 0; 228 return 0;
223 } 229 }
224 230
225 template <typename F> 231 template <typename F>
226 std::unique_ptr<uint8_t[]> GLES2RGBData(const gfx::Size& size, 232 std::unique_ptr<uint8_t[]> GLES2RGBData(const gfx::Size& size,
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
337 } 343 }
338 case gfx::BufferFormat::ATC: 344 case gfx::BufferFormat::ATC:
339 case gfx::BufferFormat::ATCIA: 345 case gfx::BufferFormat::ATCIA:
340 case gfx::BufferFormat::DXT1: 346 case gfx::BufferFormat::DXT1:
341 case gfx::BufferFormat::DXT5: 347 case gfx::BufferFormat::DXT5:
342 case gfx::BufferFormat::ETC1: 348 case gfx::BufferFormat::ETC1:
343 return nullptr; // No data conversion needed 349 return nullptr; // No data conversion needed
344 case gfx::BufferFormat::YVU_420: 350 case gfx::BufferFormat::YVU_420:
345 case gfx::BufferFormat::YUV_420_BIPLANAR: 351 case gfx::BufferFormat::YUV_420_BIPLANAR:
346 case gfx::BufferFormat::UYVY_422: 352 case gfx::BufferFormat::UYVY_422:
353 case gfx::BufferFormat::YUYV_422:
347 NOTREACHED(); 354 NOTREACHED();
348 return nullptr; 355 return nullptr;
349 } 356 }
350 357
351 NOTREACHED(); 358 NOTREACHED();
352 return nullptr; 359 return nullptr;
353 } 360 }
354 361
355 } // namespace 362 } // namespace
356 363
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
510 return Type::MEMORY; 517 return Type::MEMORY;
511 } 518 }
512 519
513 // static 520 // static
514 unsigned GLImageMemory::GetInternalFormatForTesting(gfx::BufferFormat format) { 521 unsigned GLImageMemory::GetInternalFormatForTesting(gfx::BufferFormat format) {
515 DCHECK(ValidFormat(format)); 522 DCHECK(ValidFormat(format));
516 return TextureFormat(format); 523 return TextureFormat(format);
517 } 524 }
518 525
519 } // namespace gl 526 } // namespace gl
OLDNEW
« no previous file with comments | « ui/gl/gl_image_io_surface.mm ('k') | ui/gl/gl_image_native_pixmap.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698