OLD | NEW |
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" |
11 #include "base/trace_event/trace_event.h" | 11 #include "base/trace_event/trace_event.h" |
12 #include "ui/gfx/buffer_format_util.h" | 12 #include "ui/gfx/buffer_format_util.h" |
13 #include "ui/gl/gl_bindings.h" | 13 #include "ui/gl/gl_bindings.h" |
14 #include "ui/gl/gl_context.h" | 14 #include "ui/gl/gl_context.h" |
15 #include "ui/gl/gl_version_info.h" | 15 #include "ui/gl/gl_version_info.h" |
16 | 16 |
17 using gfx::BufferFormat; | 17 using gfx::BufferFormat; |
18 | 18 |
19 namespace gl { | 19 namespace gl { |
20 namespace { | 20 namespace { |
21 | 21 |
22 bool ValidInternalFormat(unsigned internalformat) { | 22 bool ValidInternalFormat(unsigned internalformat) { |
23 switch (internalformat) { | 23 switch (internalformat) { |
24 case GL_ATC_RGB_AMD: | 24 case GL_ATC_RGB_AMD: |
25 case GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD: | 25 case GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD: |
26 case GL_COMPRESSED_RGB_S3TC_DXT1_EXT: | 26 case GL_COMPRESSED_RGB_S3TC_DXT1_EXT: |
27 case GL_COMPRESSED_RGBA_S3TC_DXT5_EXT: | 27 case GL_COMPRESSED_RGBA_S3TC_DXT5_EXT: |
28 case GL_ETC1_RGB8_OES: | 28 case GL_ETC1_RGB8_OES: |
29 case GL_R8: | 29 case GL_RED: |
30 case GL_RGB: | 30 case GL_RGB: |
31 case GL_RGBA: | 31 case GL_RGBA: |
32 case GL_BGRA_EXT: | 32 case GL_BGRA_EXT: |
33 return true; | 33 return true; |
34 default: | 34 default: |
35 return false; | 35 return false; |
36 } | 36 } |
37 } | 37 } |
38 | 38 |
39 bool ValidFormat(BufferFormat format) { | 39 bool ValidFormat(BufferFormat format) { |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
92 return GL_ATC_RGB_AMD; | 92 return GL_ATC_RGB_AMD; |
93 case BufferFormat::ATCIA: | 93 case BufferFormat::ATCIA: |
94 return GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD; | 94 return GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD; |
95 case BufferFormat::DXT1: | 95 case BufferFormat::DXT1: |
96 return GL_COMPRESSED_RGB_S3TC_DXT1_EXT; | 96 return GL_COMPRESSED_RGB_S3TC_DXT1_EXT; |
97 case BufferFormat::DXT5: | 97 case BufferFormat::DXT5: |
98 return GL_COMPRESSED_RGBA_S3TC_DXT5_EXT; | 98 return GL_COMPRESSED_RGBA_S3TC_DXT5_EXT; |
99 case BufferFormat::ETC1: | 99 case BufferFormat::ETC1: |
100 return GL_ETC1_RGB8_OES; | 100 return GL_ETC1_RGB8_OES; |
101 case BufferFormat::R_8: | 101 case BufferFormat::R_8: |
102 return gfx::GLContext::GetCurrent()->GetVersionInfo()->IsES3Capable() | 102 return GL_RED; |
103 ? GL_R8 | |
104 : GL_RED; | |
105 case BufferFormat::RGBA_4444: | 103 case BufferFormat::RGBA_4444: |
106 case BufferFormat::RGBA_8888: | 104 case BufferFormat::RGBA_8888: |
107 return GL_RGBA; | 105 return GL_RGBA; |
108 case BufferFormat::BGRA_8888: | 106 case BufferFormat::BGRA_8888: |
109 return GL_BGRA_EXT; | 107 return GL_BGRA_EXT; |
110 case BufferFormat::RGBX_8888: | 108 case BufferFormat::RGBX_8888: |
111 case BufferFormat::BGRX_8888: | 109 case BufferFormat::BGRX_8888: |
112 return GL_RGB; | 110 return GL_RGB; |
113 case BufferFormat::YUV_420: | 111 case BufferFormat::YUV_420: |
114 case BufferFormat::YUV_420_BIPLANAR: | 112 case BufferFormat::YUV_420_BIPLANAR: |
115 case BufferFormat::UYVY_422: | 113 case BufferFormat::UYVY_422: |
116 NOTREACHED(); | 114 NOTREACHED(); |
117 return 0; | 115 return 0; |
118 } | 116 } |
119 | 117 |
120 NOTREACHED(); | 118 NOTREACHED(); |
121 return 0; | 119 return 0; |
122 } | 120 } |
123 | 121 |
124 GLenum DataFormat(BufferFormat format) { | 122 GLenum DataFormat(BufferFormat format) { |
125 switch (format) { | 123 switch (format) { |
126 case BufferFormat::RGBX_8888: | 124 case BufferFormat::RGBX_8888: |
127 return GL_RGBA; | 125 return GL_RGBA; |
128 case BufferFormat::BGRX_8888: | 126 case BufferFormat::BGRX_8888: |
129 return GL_BGRA_EXT; | 127 return GL_BGRA_EXT; |
130 case BufferFormat::R_8: | |
131 return GL_RED; | |
132 case BufferFormat::RGBA_4444: | 128 case BufferFormat::RGBA_4444: |
133 case BufferFormat::RGBA_8888: | 129 case BufferFormat::RGBA_8888: |
134 case BufferFormat::BGRA_8888: | 130 case BufferFormat::BGRA_8888: |
| 131 case BufferFormat::R_8: |
135 case BufferFormat::ATC: | 132 case BufferFormat::ATC: |
136 case BufferFormat::ATCIA: | 133 case BufferFormat::ATCIA: |
137 case BufferFormat::DXT1: | 134 case BufferFormat::DXT1: |
138 case BufferFormat::DXT5: | 135 case BufferFormat::DXT5: |
139 case BufferFormat::ETC1: | 136 case BufferFormat::ETC1: |
140 return TextureFormat(format); | 137 return TextureFormat(format); |
141 case BufferFormat::YUV_420: | 138 case BufferFormat::YUV_420: |
142 case BufferFormat::YUV_420_BIPLANAR: | 139 case BufferFormat::YUV_420_BIPLANAR: |
143 case BufferFormat::UYVY_422: | 140 case BufferFormat::UYVY_422: |
144 NOTREACHED(); | 141 NOTREACHED(); |
(...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
447 return false; | 444 return false; |
448 } | 445 } |
449 | 446 |
450 // static | 447 // static |
451 unsigned GLImageMemory::GetInternalFormatForTesting(BufferFormat format) { | 448 unsigned GLImageMemory::GetInternalFormatForTesting(BufferFormat format) { |
452 DCHECK(ValidFormat(format)); | 449 DCHECK(ValidFormat(format)); |
453 return TextureFormat(format); | 450 return TextureFormat(format); |
454 } | 451 } |
455 | 452 |
456 } // namespace gl | 453 } // namespace gl |
OLD | NEW |