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

Side by Side Diff: gpu/command_buffer/tests/gl_gpu_memory_buffer_unittest.cc

Issue 1051503003: Add R_8 GPU memory buffers format. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address reveman's nits. Created 5 years, 8 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 <GLES2/gl2.h> 5 #include <GLES2/gl2.h>
6 #include <GLES2/gl2chromium.h> 6 #include <GLES2/gl2chromium.h>
7 #include <GLES2/gl2ext.h> 7 #include <GLES2/gl2ext.h>
8 #include <GLES2/gl2extchromium.h> 8 #include <GLES2/gl2extchromium.h>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
73 varying vec2 v_texCoord; 73 varying vec2 v_texCoord;
74 void main() { 74 void main() {
75 gl_FragColor = texture2D(a_texture, v_texCoord); 75 gl_FragColor = texture2D(a_texture, v_texCoord);
76 } 76 }
77 ); 77 );
78 // clang-format on 78 // clang-format on
79 79
80 std::vector<uint8> GetTexturePixel(const gfx::GpuMemoryBuffer::Format format) { 80 std::vector<uint8> GetTexturePixel(const gfx::GpuMemoryBuffer::Format format) {
81 std::vector<uint8> pixel; 81 std::vector<uint8> pixel;
82 switch (format) { 82 switch (format) {
83 case gfx::GpuMemoryBuffer::R_8:
84 pixel.push_back(255u);
85 return pixel;
83 case gfx::GpuMemoryBuffer::RGBA_8888: 86 case gfx::GpuMemoryBuffer::RGBA_8888:
84 pixel.push_back(255u); 87 pixel.push_back(255u);
85 pixel.push_back(0u); 88 pixel.push_back(0u);
86 pixel.push_back(0u); 89 pixel.push_back(0u);
87 pixel.push_back(255u); 90 pixel.push_back(255u);
88 return pixel; 91 return pixel;
89 case gfx::GpuMemoryBuffer::BGRA_8888: 92 case gfx::GpuMemoryBuffer::BGRA_8888:
90 pixel.push_back(0u); 93 pixel.push_back(0u);
91 pixel.push_back(0u); 94 pixel.push_back(0u);
92 pixel.push_back(255u); 95 pixel.push_back(255u);
(...skipping 10 matching lines...) Expand all
103 } 106 }
104 107
105 NOTREACHED(); 108 NOTREACHED();
106 return std::vector<uint8>(); 109 return std::vector<uint8>();
107 } 110 }
108 111
109 std::vector<uint8> GetFramebufferPixel( 112 std::vector<uint8> GetFramebufferPixel(
110 const gfx::GpuMemoryBuffer::Format format) { 113 const gfx::GpuMemoryBuffer::Format format) {
111 std::vector<uint8> pixel; 114 std::vector<uint8> pixel;
112 switch (format) { 115 switch (format) {
116 case gfx::GpuMemoryBuffer::R_8:
113 case gfx::GpuMemoryBuffer::RGBA_8888: 117 case gfx::GpuMemoryBuffer::RGBA_8888:
114 case gfx::GpuMemoryBuffer::BGRA_8888: 118 case gfx::GpuMemoryBuffer::BGRA_8888:
115 pixel.push_back(255u); 119 pixel.push_back(255u);
116 pixel.push_back(0u); 120 pixel.push_back(0u);
117 pixel.push_back(0u); 121 pixel.push_back(0u);
118 pixel.push_back(255u); 122 pixel.push_back(255u);
119 return pixel; 123 return pixel;
120 case gfx::GpuMemoryBuffer::ATC: 124 case gfx::GpuMemoryBuffer::ATC:
121 case gfx::GpuMemoryBuffer::ATCIA: 125 case gfx::GpuMemoryBuffer::ATCIA:
122 case gfx::GpuMemoryBuffer::DXT1: 126 case gfx::GpuMemoryBuffer::DXT1:
123 case gfx::GpuMemoryBuffer::DXT5: 127 case gfx::GpuMemoryBuffer::DXT5:
124 case gfx::GpuMemoryBuffer::ETC1: 128 case gfx::GpuMemoryBuffer::ETC1:
125 case gfx::GpuMemoryBuffer::RGBX_8888: 129 case gfx::GpuMemoryBuffer::RGBX_8888:
126 NOTREACHED(); 130 NOTREACHED();
127 return std::vector<uint8>(); 131 return std::vector<uint8>();
128 } 132 }
129 133
130 NOTREACHED(); 134 NOTREACHED();
131 return std::vector<uint8>(); 135 return std::vector<uint8>();
132 } 136 }
133 137
134 GLenum InternalFormat(gfx::GpuMemoryBuffer::Format format) { 138 GLenum InternalFormat(gfx::GpuMemoryBuffer::Format format) {
135 switch (format) { 139 switch (format) {
140 case gfx::GpuMemoryBuffer::R_8:
141 return GL_R8;
136 case gfx::GpuMemoryBuffer::RGBA_8888: 142 case gfx::GpuMemoryBuffer::RGBA_8888:
137 return GL_RGBA; 143 return GL_RGBA;
138 case gfx::GpuMemoryBuffer::BGRA_8888: 144 case gfx::GpuMemoryBuffer::BGRA_8888:
139 return GL_BGRA_EXT; 145 return GL_BGRA_EXT;
140 case gfx::GpuMemoryBuffer::ATC: 146 case gfx::GpuMemoryBuffer::ATC:
141 case gfx::GpuMemoryBuffer::ATCIA: 147 case gfx::GpuMemoryBuffer::ATCIA:
142 case gfx::GpuMemoryBuffer::DXT1: 148 case gfx::GpuMemoryBuffer::DXT1:
143 case gfx::GpuMemoryBuffer::DXT5: 149 case gfx::GpuMemoryBuffer::DXT5:
144 case gfx::GpuMemoryBuffer::ETC1: 150 case gfx::GpuMemoryBuffer::ETC1:
145 case gfx::GpuMemoryBuffer::RGBX_8888: 151 case gfx::GpuMemoryBuffer::RGBX_8888:
146 NOTREACHED(); 152 NOTREACHED();
147 return 0; 153 return 0;
148 } 154 }
149 155
150 NOTREACHED(); 156 NOTREACHED();
151 return 0; 157 return 0;
152 } 158 }
153 159
154 } // namespace 160 } // namespace
155 161
156 // An end to end test that tests the whole GpuMemoryBuffer lifecycle. 162 // An end to end test that tests the whole GpuMemoryBuffer lifecycle.
157 TEST_P(GpuMemoryBufferTest, Lifecycle) { 163 TEST_P(GpuMemoryBufferTest, Lifecycle) {
164 ASSERT_TRUE((GetParam() != gfx::GpuMemoryBuffer::R_8) ||
reveman 2015/04/08 02:57:28 We should consider adding a histogram to find out
165 gl_.GetCapabilities().texture_rg);
166
158 GLuint texture_id = 0; 167 GLuint texture_id = 0;
159 glGenTextures(1, &texture_id); 168 glGenTextures(1, &texture_id);
160 ASSERT_NE(0u, texture_id); 169 ASSERT_NE(0u, texture_id);
161 glBindTexture(GL_TEXTURE_2D, texture_id); 170 glBindTexture(GL_TEXTURE_2D, texture_id);
162 glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); 171 glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
163 glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); 172 glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
164 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); 173 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
165 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); 174 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
166 175
167 // Create the gpu memory buffer. 176 // Create the gpu memory buffer.
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
233 glDeleteProgram(program); 242 glDeleteProgram(program);
234 glDeleteShader(vertex_shader); 243 glDeleteShader(vertex_shader);
235 glDeleteShader(fragment_shader); 244 glDeleteShader(fragment_shader);
236 glDeleteBuffers(1, &vbo); 245 glDeleteBuffers(1, &vbo);
237 glDestroyImageCHROMIUM(image_id); 246 glDestroyImageCHROMIUM(image_id);
238 glDeleteTextures(1, &texture_id); 247 glDeleteTextures(1, &texture_id);
239 } 248 }
240 249
241 INSTANTIATE_TEST_CASE_P(GpuMemoryBufferTests, 250 INSTANTIATE_TEST_CASE_P(GpuMemoryBufferTests,
242 GpuMemoryBufferTest, 251 GpuMemoryBufferTest,
243 ::testing::Values(gfx::GpuMemoryBuffer::RGBA_8888, 252 ::testing::Values(gfx::GpuMemoryBuffer::R_8,
253 gfx::GpuMemoryBuffer::RGBA_8888,
244 gfx::GpuMemoryBuffer::BGRA_8888)); 254 gfx::GpuMemoryBuffer::BGRA_8888));
245 255
246 } // namespace gles2 256 } // namespace gles2
247 } // namespace gpu 257 } // namespace gpu
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698