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

Side by Side Diff: ui/gl/test/gl_image_test_template.h

Issue 2449993005: Remove GLImage::Destroy(). (Closed)
Patch Set: One more Destroy() call on Mac. Created 4 years, 1 month 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_surface_texture.cc ('k') | ui/ozone/demo/surfaceless_gl_renderer.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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 // This file defines tests that implementations of GLImage should pass in order 5 // This file defines tests that implementations of GLImage should pass in order
6 // to be conformant. 6 // to be conformant.
7 7
8 #ifndef UI_GL_TEST_GL_IMAGE_TEST_TEMPLATE_H_ 8 #ifndef UI_GL_TEST_GL_IMAGE_TEST_TEMPLATE_H_
9 #define UI_GL_TEST_GL_IMAGE_TEST_TEMPLATE_H_ 9 #define UI_GL_TEST_GL_IMAGE_TEST_TEMPLATE_H_
10 10
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after
176 } 176 }
177 177
178 protected: 178 protected:
179 scoped_refptr<GLSurface> surface_; 179 scoped_refptr<GLSurface> surface_;
180 scoped_refptr<GLContext> context_; 180 scoped_refptr<GLContext> context_;
181 GLImageTestDelegate delegate_; 181 GLImageTestDelegate delegate_;
182 }; 182 };
183 183
184 TYPED_TEST_CASE_P(GLImageTest); 184 TYPED_TEST_CASE_P(GLImageTest);
185 185
186 TYPED_TEST_P(GLImageTest, CreateAndDestroy) { 186 TYPED_TEST_P(GLImageTest, Create) {
187 const gfx::Size small_image_size(4, 4); 187 const gfx::Size small_image_size(4, 4);
188 const gfx::Size large_image_size(512, 512); 188 const gfx::Size large_image_size(512, 512);
189 const uint8_t* image_color = this->delegate_.GetImageColor(); 189 const uint8_t* image_color = this->delegate_.GetImageColor();
190 190
191 // Create a small solid color green image of preferred format. This must 191 // Create a small solid color green image of preferred format. This must
192 // succeed in order for a GLImage to be conformant. 192 // succeed in order for a GLImage to be conformant.
193 scoped_refptr<GLImage> small_image = 193 scoped_refptr<GLImage> small_image =
194 this->delegate_.CreateSolidColorImage(small_image_size, image_color); 194 this->delegate_.CreateSolidColorImage(small_image_size, image_color);
195 ASSERT_TRUE(small_image); 195 ASSERT_TRUE(small_image);
196 196
197 // Create a large solid color green image of preferred format. This must 197 // Create a large solid color green image of preferred format. This must
198 // succeed in order for a GLImage to be conformant. 198 // succeed in order for a GLImage to be conformant.
199 scoped_refptr<GLImage> large_image = 199 scoped_refptr<GLImage> large_image =
200 this->delegate_.CreateSolidColorImage(large_image_size, image_color); 200 this->delegate_.CreateSolidColorImage(large_image_size, image_color);
201 ASSERT_TRUE(large_image); 201 ASSERT_TRUE(large_image);
202 202
203 // Verify that image size is correct. 203 // Verify that image size is correct.
204 EXPECT_EQ(small_image->GetSize().ToString(), small_image_size.ToString()); 204 EXPECT_EQ(small_image->GetSize().ToString(), small_image_size.ToString());
205 EXPECT_EQ(large_image->GetSize().ToString(), large_image_size.ToString()); 205 EXPECT_EQ(large_image->GetSize().ToString(), large_image_size.ToString());
206
207 // Verify that destruction of images work correctly both when we have a
208 // context and when we don't.
209 small_image->Destroy(true /* have_context */);
210 large_image->Destroy(false /* have_context */);
211 } 206 }
212 207
213 // The GLImageTest test case verifies the behaviour that is expected from a 208 // The GLImageTest test case verifies the behaviour that is expected from a
214 // GLImage in order to be conformant. 209 // GLImage in order to be conformant.
215 REGISTER_TYPED_TEST_CASE_P(GLImageTest, CreateAndDestroy); 210 REGISTER_TYPED_TEST_CASE_P(GLImageTest, Create);
216 211
217 template <typename GLImageTestDelegate> 212 template <typename GLImageTestDelegate>
218 class GLImageOddSizeTest : public GLImageTest<GLImageTestDelegate> {}; 213 class GLImageOddSizeTest : public GLImageTest<GLImageTestDelegate> {};
219 214
220 // This test verifies that odd-sized GLImages can be created and destroyed. 215 // This test verifies that odd-sized GLImages can be created and destroyed.
221 TYPED_TEST_CASE_P(GLImageOddSizeTest); 216 TYPED_TEST_CASE_P(GLImageOddSizeTest);
222 217
223 TYPED_TEST_P(GLImageOddSizeTest, CreateAndDestroy) { 218 TYPED_TEST_P(GLImageOddSizeTest, Create) {
224 const gfx::Size odd_image_size(17, 53); 219 const gfx::Size odd_image_size(17, 53);
225 const uint8_t* image_color = this->delegate_.GetImageColor(); 220 const uint8_t* image_color = this->delegate_.GetImageColor();
226 221
227 // Create an odd-sized solid color green image of preferred format. This must 222 // Create an odd-sized solid color green image of preferred format. This must
228 // succeed in order for a GLImage to be conformant. 223 // succeed in order for a GLImage to be conformant.
229 scoped_refptr<GLImage> odd_image = 224 scoped_refptr<GLImage> odd_image =
230 this->delegate_.CreateSolidColorImage(odd_image_size, image_color); 225 this->delegate_.CreateSolidColorImage(odd_image_size, image_color);
231 ASSERT_TRUE(odd_image); 226 ASSERT_TRUE(odd_image);
232 227
233 // Verify that image size is correct. 228 // Verify that image size is correct.
234 EXPECT_EQ(odd_image->GetSize().ToString(), odd_image_size.ToString()); 229 EXPECT_EQ(odd_image->GetSize().ToString(), odd_image_size.ToString());
235
236 odd_image->Destroy(true /* have_context */);
237 } 230 }
238 231
239 // The GLImageTest test case verifies the behaviour that is expected from a 232 // The GLImageTest test case verifies the behaviour that is expected from a
240 // GLImage in order to be conformant. 233 // GLImage in order to be conformant.
241 REGISTER_TYPED_TEST_CASE_P(GLImageOddSizeTest, CreateAndDestroy); 234 REGISTER_TYPED_TEST_CASE_P(GLImageOddSizeTest, Create);
242 235
243 template <typename GLImageTestDelegate> 236 template <typename GLImageTestDelegate>
244 class GLImageZeroInitializeTest : public GLImageTest<GLImageTestDelegate> {}; 237 class GLImageZeroInitializeTest : public GLImageTest<GLImageTestDelegate> {};
245 238
246 // This test verifies that if an uninitialized image is bound to a texture, the 239 // This test verifies that if an uninitialized image is bound to a texture, the
247 // result is zero-initialized. 240 // result is zero-initialized.
248 TYPED_TEST_CASE_P(GLImageZeroInitializeTest); 241 TYPED_TEST_CASE_P(GLImageZeroInitializeTest);
249 242
250 TYPED_TEST_P(GLImageZeroInitializeTest, ZeroInitialize) { 243 TYPED_TEST_P(GLImageZeroInitializeTest, ZeroInitialize) {
251 #if defined(OS_MACOSX) 244 #if defined(OS_MACOSX)
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
287 image->ReleaseTexImage(target); 280 image->ReleaseTexImage(target);
288 281
289 // Read back pixels to check expectations. 282 // Read back pixels to check expectations.
290 const uint8_t zero_color[] = {0, 0, 0, 0}; 283 const uint8_t zero_color[] = {0, 0, 0, 0};
291 GLTestHelper::CheckPixels(0, 0, image_size.width(), image_size.height(), 284 GLTestHelper::CheckPixels(0, 0, image_size.width(), image_size.height(),
292 zero_color); 285 zero_color);
293 286
294 // Clean up. 287 // Clean up.
295 glDeleteTextures(1, &texture); 288 glDeleteTextures(1, &texture);
296 glDeleteFramebuffersEXT(1, &framebuffer); 289 glDeleteFramebuffersEXT(1, &framebuffer);
297 image->Destroy(true /* have_context */);
298 } 290 }
299 291
300 REGISTER_TYPED_TEST_CASE_P(GLImageZeroInitializeTest, ZeroInitialize); 292 REGISTER_TYPED_TEST_CASE_P(GLImageZeroInitializeTest, ZeroInitialize);
301 293
302 template <typename GLImageTestDelegate> 294 template <typename GLImageTestDelegate>
303 class GLImageBindTest : public GLImageTest<GLImageTestDelegate> {}; 295 class GLImageBindTest : public GLImageTest<GLImageTestDelegate> {};
304 296
305 TYPED_TEST_CASE_P(GLImageBindTest); 297 TYPED_TEST_CASE_P(GLImageBindTest);
306 298
307 TYPED_TEST_P(GLImageBindTest, BindTexImage) { 299 TYPED_TEST_P(GLImageBindTest, BindTexImage) {
(...skipping 26 matching lines...) Expand all
334 // Draw |texture| to viewport. 326 // Draw |texture| to viewport.
335 DrawTextureQuad(target, image_size); 327 DrawTextureQuad(target, image_size);
336 328
337 // Read back pixels to check expectations. 329 // Read back pixels to check expectations.
338 GLTestHelper::CheckPixels(0, 0, image_size.width(), image_size.height(), 330 GLTestHelper::CheckPixels(0, 0, image_size.width(), image_size.height(),
339 image_color); 331 image_color);
340 332
341 // Clean up. 333 // Clean up.
342 glDeleteTextures(1, &texture); 334 glDeleteTextures(1, &texture);
343 glDeleteFramebuffersEXT(1, &framebuffer); 335 glDeleteFramebuffersEXT(1, &framebuffer);
344 image->Destroy(true /* have_context */);
345 } 336 }
346 337
347 REGISTER_TYPED_TEST_CASE_P(GLImageBindTest, BindTexImage); 338 REGISTER_TYPED_TEST_CASE_P(GLImageBindTest, BindTexImage);
348 339
349 template <typename GLImageTestDelegate> 340 template <typename GLImageTestDelegate>
350 class GLImageCopyTest : public GLImageTest<GLImageTestDelegate> {}; 341 class GLImageCopyTest : public GLImageTest<GLImageTestDelegate> {};
351 342
352 TYPED_TEST_CASE_P(GLImageCopyTest); 343 TYPED_TEST_CASE_P(GLImageCopyTest);
353 344
354 TYPED_TEST_P(GLImageCopyTest, CopyTexImage) { 345 TYPED_TEST_P(GLImageCopyTest, CopyTexImage) {
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
396 // Draw |texture| to viewport. 387 // Draw |texture| to viewport.
397 DrawTextureQuad(target, image_size); 388 DrawTextureQuad(target, image_size);
398 389
399 // Read back pixels to check expectations. 390 // Read back pixels to check expectations.
400 GLTestHelper::CheckPixels(0, 0, image_size.width(), image_size.height(), 391 GLTestHelper::CheckPixels(0, 0, image_size.width(), image_size.height(),
401 image_color); 392 image_color);
402 393
403 // Clean up. 394 // Clean up.
404 glDeleteTextures(1, &texture); 395 glDeleteTextures(1, &texture);
405 glDeleteFramebuffersEXT(1, &framebuffer); 396 glDeleteFramebuffersEXT(1, &framebuffer);
406 image->Destroy(true /* have_context */);
407 if (vao) { 397 if (vao) {
408 glDeleteVertexArraysOES(1, &vao); 398 glDeleteVertexArraysOES(1, &vao);
409 } 399 }
410 } 400 }
411 401
412 // The GLImageCopyTest test case verifies that the GLImage implementation 402 // The GLImageCopyTest test case verifies that the GLImage implementation
413 // handles CopyTexImage correctly. 403 // handles CopyTexImage correctly.
414 REGISTER_TYPED_TEST_CASE_P(GLImageCopyTest, CopyTexImage); 404 REGISTER_TYPED_TEST_CASE_P(GLImageCopyTest, CopyTexImage);
415 405
416 } // namespace gl 406 } // namespace gl
417 407
418 #endif // UI_GL_TEST_GL_IMAGE_TEST_TEMPLATE_H_ 408 #endif // UI_GL_TEST_GL_IMAGE_TEST_TEMPLATE_H_
OLDNEW
« no previous file with comments | « ui/gl/gl_image_surface_texture.cc ('k') | ui/ozone/demo/surfaceless_gl_renderer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698