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

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

Issue 1263043006: Implement the texture uploading of ASTC compression for WebGL (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Cleanup and Remove unnecessary enum/OES extensions. Created 5 years, 4 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
« ui/gfx/gpu_memory_buffer.h ('K') | « ui/gfx/gpu_memory_buffer.h ('k') | no next file » | 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 "base/logging.h" 7 #include "base/logging.h"
8 #include "base/trace_event/trace_event.h" 8 #include "base/trace_event/trace_event.h"
9 #include "ui/gl/gl_bindings.h" 9 #include "ui/gl/gl_bindings.h"
10 #include "ui/gl/scoped_binders.h" 10 #include "ui/gl/scoped_binders.h"
(...skipping 17 matching lines...) Expand all
28 case GL_RGBA: 28 case GL_RGBA:
29 case GL_BGRA_EXT: 29 case GL_BGRA_EXT:
30 return true; 30 return true;
31 default: 31 default:
32 return false; 32 return false;
33 } 33 }
34 } 34 }
35 35
36 bool ValidFormat(GpuMemoryBuffer::Format format) { 36 bool ValidFormat(GpuMemoryBuffer::Format format) {
37 switch (format) { 37 switch (format) {
38 case GpuMemoryBuffer::ASTC:
38 case GpuMemoryBuffer::ATC: 39 case GpuMemoryBuffer::ATC:
39 case GpuMemoryBuffer::ATCIA: 40 case GpuMemoryBuffer::ATCIA:
40 case GpuMemoryBuffer::DXT1: 41 case GpuMemoryBuffer::DXT1:
41 case GpuMemoryBuffer::DXT5: 42 case GpuMemoryBuffer::DXT5:
42 case GpuMemoryBuffer::ETC1: 43 case GpuMemoryBuffer::ETC1:
43 case GpuMemoryBuffer::R_8: 44 case GpuMemoryBuffer::R_8:
44 case GpuMemoryBuffer::RGBA_4444: 45 case GpuMemoryBuffer::RGBA_4444:
45 case GpuMemoryBuffer::RGBA_8888: 46 case GpuMemoryBuffer::RGBA_8888:
46 case GpuMemoryBuffer::BGRA_8888: 47 case GpuMemoryBuffer::BGRA_8888:
47 return true; 48 return true;
48 case GpuMemoryBuffer::RGBX_8888: 49 case GpuMemoryBuffer::RGBX_8888:
49 case GpuMemoryBuffer::YUV_420: 50 case GpuMemoryBuffer::YUV_420:
50 return false; 51 return false;
51 } 52 }
52 53
53 NOTREACHED(); 54 NOTREACHED();
54 return false; 55 return false;
55 } 56 }
56 57
57 bool IsCompressedFormat(GpuMemoryBuffer::Format format) { 58 bool IsCompressedFormat(GpuMemoryBuffer::Format format) {
58 switch (format) { 59 switch (format) {
60 case GpuMemoryBuffer::ASTC:
59 case GpuMemoryBuffer::ATC: 61 case GpuMemoryBuffer::ATC:
60 case GpuMemoryBuffer::ATCIA: 62 case GpuMemoryBuffer::ATCIA:
61 case GpuMemoryBuffer::DXT1: 63 case GpuMemoryBuffer::DXT1:
62 case GpuMemoryBuffer::DXT5: 64 case GpuMemoryBuffer::DXT5:
63 case GpuMemoryBuffer::ETC1: 65 case GpuMemoryBuffer::ETC1:
64 case GpuMemoryBuffer::YUV_420: 66 case GpuMemoryBuffer::YUV_420:
65 return true; 67 return true;
66 case GpuMemoryBuffer::R_8: 68 case GpuMemoryBuffer::R_8:
67 case GpuMemoryBuffer::RGBA_4444: 69 case GpuMemoryBuffer::RGBA_4444:
68 case GpuMemoryBuffer::RGBA_8888: 70 case GpuMemoryBuffer::RGBA_8888:
69 case GpuMemoryBuffer::BGRA_8888: 71 case GpuMemoryBuffer::BGRA_8888:
70 case GpuMemoryBuffer::RGBX_8888: 72 case GpuMemoryBuffer::RGBX_8888:
71 return false; 73 return false;
72 } 74 }
73 75
74 NOTREACHED(); 76 NOTREACHED();
75 return false; 77 return false;
76 } 78 }
77 79
78 GLenum TextureFormat(GpuMemoryBuffer::Format format) { 80 GLenum TextureFormat(GpuMemoryBuffer::Format format) {
79 switch (format) { 81 switch (format) {
82 case GpuMemoryBuffer::ASTC:
83 return GL_COMPRESSED_RGBA_ASTC_4x4_KHR;
80 case GpuMemoryBuffer::ATC: 84 case GpuMemoryBuffer::ATC:
81 return GL_ATC_RGB_AMD; 85 return GL_ATC_RGB_AMD;
82 case GpuMemoryBuffer::ATCIA: 86 case GpuMemoryBuffer::ATCIA:
83 return GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD; 87 return GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD;
84 case GpuMemoryBuffer::DXT1: 88 case GpuMemoryBuffer::DXT1:
85 return GL_COMPRESSED_RGB_S3TC_DXT1_EXT; 89 return GL_COMPRESSED_RGB_S3TC_DXT1_EXT;
86 case GpuMemoryBuffer::DXT5: 90 case GpuMemoryBuffer::DXT5:
87 return GL_COMPRESSED_RGBA_S3TC_DXT5_EXT; 91 return GL_COMPRESSED_RGBA_S3TC_DXT5_EXT;
88 case GpuMemoryBuffer::ETC1: 92 case GpuMemoryBuffer::ETC1:
89 return GL_ETC1_RGB8_OES; 93 return GL_ETC1_RGB8_OES;
(...skipping 19 matching lines...) Expand all
109 } 113 }
110 114
111 GLenum DataType(GpuMemoryBuffer::Format format) { 115 GLenum DataType(GpuMemoryBuffer::Format format) {
112 switch (format) { 116 switch (format) {
113 case GpuMemoryBuffer::RGBA_4444: 117 case GpuMemoryBuffer::RGBA_4444:
114 return GL_UNSIGNED_SHORT_4_4_4_4; 118 return GL_UNSIGNED_SHORT_4_4_4_4;
115 case GpuMemoryBuffer::RGBA_8888: 119 case GpuMemoryBuffer::RGBA_8888:
116 case GpuMemoryBuffer::BGRA_8888: 120 case GpuMemoryBuffer::BGRA_8888:
117 case GpuMemoryBuffer::R_8: 121 case GpuMemoryBuffer::R_8:
118 return GL_UNSIGNED_BYTE; 122 return GL_UNSIGNED_BYTE;
123 case GpuMemoryBuffer::ASTC:
119 case GpuMemoryBuffer::ATC: 124 case GpuMemoryBuffer::ATC:
120 case GpuMemoryBuffer::ATCIA: 125 case GpuMemoryBuffer::ATCIA:
121 case GpuMemoryBuffer::DXT1: 126 case GpuMemoryBuffer::DXT1:
122 case GpuMemoryBuffer::DXT5: 127 case GpuMemoryBuffer::DXT5:
123 case GpuMemoryBuffer::ETC1: 128 case GpuMemoryBuffer::ETC1:
124 case GpuMemoryBuffer::RGBX_8888: 129 case GpuMemoryBuffer::RGBX_8888:
125 case GpuMemoryBuffer::YUV_420: 130 case GpuMemoryBuffer::YUV_420:
126 NOTREACHED(); 131 NOTREACHED();
127 return 0; 132 return 0;
128 } 133 }
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
170 // static 175 // static
171 bool GLImageMemory::StrideInBytes(size_t width, 176 bool GLImageMemory::StrideInBytes(size_t width,
172 GpuMemoryBuffer::Format format, 177 GpuMemoryBuffer::Format format,
173 size_t* stride_in_bytes) { 178 size_t* stride_in_bytes) {
174 base::CheckedNumeric<size_t> checked_stride = width; 179 base::CheckedNumeric<size_t> checked_stride = width;
175 switch (format) { 180 switch (format) {
176 case GpuMemoryBuffer::ATCIA: 181 case GpuMemoryBuffer::ATCIA:
177 case GpuMemoryBuffer::DXT5: 182 case GpuMemoryBuffer::DXT5:
178 *stride_in_bytes = width; 183 *stride_in_bytes = width;
179 return true; 184 return true;
185 case GpuMemoryBuffer::ASTC:
180 case GpuMemoryBuffer::ATC: 186 case GpuMemoryBuffer::ATC:
181 case GpuMemoryBuffer::DXT1: 187 case GpuMemoryBuffer::DXT1:
182 case GpuMemoryBuffer::ETC1: 188 case GpuMemoryBuffer::ETC1:
183 DCHECK_EQ(width % 2, 0u); 189 DCHECK_EQ(width % 2, 0u);
184 *stride_in_bytes = width / 2; 190 *stride_in_bytes = width / 2;
185 return true; 191 return true;
186 case GpuMemoryBuffer::R_8: 192 case GpuMemoryBuffer::R_8:
187 checked_stride += 3; 193 checked_stride += 3;
188 if (!checked_stride.IsValid()) 194 if (!checked_stride.IsValid())
189 return false; 195 return false;
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after
433 size_.width(), 439 size_.width(),
434 size_.height(), 440 size_.height(),
435 0, // border 441 0, // border
436 DataFormat(format_), 442 DataFormat(format_),
437 DataType(format_), 443 DataType(format_),
438 memory_); 444 memory_);
439 } 445 }
440 } 446 }
441 447
442 } // namespace gfx 448 } // namespace gfx
OLDNEW
« ui/gfx/gpu_memory_buffer.h ('K') | « ui/gfx/gpu_memory_buffer.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698