OLD | NEW |
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 "ui/gl/gl_image_io_surface.h" | 5 #include "ui/gl/gl_image_io_surface.h" |
6 | 6 |
7 #include <map> | 7 #include <map> |
8 | 8 |
9 #include "base/lazy_instance.h" | 9 #include "base/lazy_instance.h" |
10 #include "base/mac/foundation_util.h" | 10 #include "base/mac/foundation_util.h" |
11 #include "base/strings/stringize_macros.h" | 11 #include "base/strings/stringize_macros.h" |
12 #include "base/strings/stringprintf.h" | 12 #include "base/strings/stringprintf.h" |
13 #include "base/trace_event/memory_allocator_dump.h" | 13 #include "base/trace_event/memory_allocator_dump.h" |
14 #include "base/trace_event/memory_dump_manager.h" | 14 #include "base/trace_event/memory_dump_manager.h" |
15 #include "base/trace_event/process_memory_dump.h" | 15 #include "base/trace_event/process_memory_dump.h" |
16 #include "ui/gl/gl_bindings.h" | 16 #include "ui/gl/gl_bindings.h" |
17 #include "ui/gl/gl_context.h" | 17 #include "ui/gl/gl_context.h" |
18 #include "ui/gl/gl_helper.h" | 18 #include "ui/gl/gl_helper.h" |
19 #include "ui/gl/gl_version_info.h" | |
20 #include "ui/gl/scoped_binders.h" | 19 #include "ui/gl/scoped_binders.h" |
21 | 20 |
22 // Note that this must be included after gl_bindings.h to avoid conflicts. | 21 // Note that this must be included after gl_bindings.h to avoid conflicts. |
23 #include <OpenGL/CGLIOSurface.h> | 22 #include <OpenGL/CGLIOSurface.h> |
24 #include <Quartz/Quartz.h> | 23 #include <Quartz/Quartz.h> |
25 #include <stddef.h> | 24 #include <stddef.h> |
26 | 25 |
27 using gfx::BufferFormat; | 26 using gfx::BufferFormat; |
28 | 27 |
29 namespace gl { | 28 namespace gl { |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
62 vec3 yuv = vec3( | 61 vec3 yuv = vec3( |
63 texture2DRect(a_y_texture, v_texCoord).r, | 62 texture2DRect(a_y_texture, v_texCoord).r, |
64 texture2DRect(a_uv_texture, v_texCoord * 0.5).rg); | 63 texture2DRect(a_uv_texture, v_texCoord * 0.5).rg); |
65 gl_FragColor = vec4(yuv_matrix * (yuv + yuv_adj), 1.0); | 64 gl_FragColor = vec4(yuv_matrix * (yuv + yuv_adj), 1.0); |
66 } | 65 } |
67 ); | 66 ); |
68 // clang-format on | 67 // clang-format on |
69 | 68 |
70 bool ValidInternalFormat(unsigned internalformat) { | 69 bool ValidInternalFormat(unsigned internalformat) { |
71 switch (internalformat) { | 70 switch (internalformat) { |
72 case GL_R8: | 71 case GL_RED: |
73 case GL_BGRA_EXT: | 72 case GL_BGRA_EXT: |
74 case GL_RGB: | 73 case GL_RGB: |
75 case GL_RGB_YCBCR_420V_CHROMIUM: | 74 case GL_RGB_YCBCR_420V_CHROMIUM: |
76 case GL_RGB_YCBCR_422_CHROMIUM: | 75 case GL_RGB_YCBCR_422_CHROMIUM: |
77 case GL_RGBA: | 76 case GL_RGBA: |
78 return true; | 77 return true; |
79 default: | 78 default: |
80 return false; | 79 return false; |
81 } | 80 } |
82 } | 81 } |
(...skipping 18 matching lines...) Expand all Loading... |
101 return false; | 100 return false; |
102 } | 101 } |
103 | 102 |
104 NOTREACHED(); | 103 NOTREACHED(); |
105 return false; | 104 return false; |
106 } | 105 } |
107 | 106 |
108 GLenum TextureFormat(BufferFormat format) { | 107 GLenum TextureFormat(BufferFormat format) { |
109 switch (format) { | 108 switch (format) { |
110 case BufferFormat::R_8: | 109 case BufferFormat::R_8: |
111 return gfx::GLContext::GetCurrent()->GetVersionInfo()->IsES3Capable() | 110 return GL_RED; |
112 ? GL_R8 | |
113 : GL_RED; | |
114 case BufferFormat::BGRA_8888: | 111 case BufferFormat::BGRA_8888: |
115 case BufferFormat::RGBA_8888: | 112 case BufferFormat::RGBA_8888: |
116 return GL_RGBA; | 113 return GL_RGBA; |
117 case BufferFormat::UYVY_422: | 114 case BufferFormat::UYVY_422: |
118 return GL_RGB; | 115 return GL_RGB; |
119 case BufferFormat::YUV_420_BIPLANAR: | 116 case BufferFormat::YUV_420_BIPLANAR: |
120 return GL_RGB_YCBCR_420V_CHROMIUM; | 117 return GL_RGB_YCBCR_420V_CHROMIUM; |
121 case BufferFormat::ATC: | 118 case BufferFormat::ATC: |
122 case BufferFormat::ATCIA: | 119 case BufferFormat::ATCIA: |
123 case BufferFormat::DXT1: | 120 case BufferFormat::DXT1: |
(...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
421 g_widget_to_layer_map.Pointer()->erase(widget); | 418 g_widget_to_layer_map.Pointer()->erase(widget); |
422 } | 419 } |
423 | 420 |
424 // static | 421 // static |
425 unsigned GLImageIOSurface::GetInternalFormatForTesting( | 422 unsigned GLImageIOSurface::GetInternalFormatForTesting( |
426 gfx::BufferFormat format) { | 423 gfx::BufferFormat format) { |
427 DCHECK(ValidFormat(format)); | 424 DCHECK(ValidFormat(format)); |
428 return TextureFormat(format); | 425 return TextureFormat(format); |
429 } | 426 } |
430 } // namespace gl | 427 } // namespace gl |
OLD | NEW |