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

Side by Side Diff: Source/platform/graphics/gpu/DrawingBufferTest.cpp

Issue 369043003: Let canvas decide how to handle the case of resource lost reported by client: 2D part (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: delete mailbox if context or resource is lost Created 6 years, 5 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 /* 1 /*
2 * Copyright (C) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after
245 IntSize initialSize(initialWidth, initialHeight); 245 IntSize initialSize(initialWidth, initialHeight);
246 IntSize alternateSize(initialWidth, alternateHeight); 246 IntSize alternateSize(initialWidth, alternateHeight);
247 247
248 // Produce one mailbox at size 100x100. 248 // Produce one mailbox at size 100x100.
249 m_drawingBuffer->markContentsChanged(); 249 m_drawingBuffer->markContentsChanged();
250 EXPECT_TRUE(m_drawingBuffer->prepareMailbox(&mailbox, 0)); 250 EXPECT_TRUE(m_drawingBuffer->prepareMailbox(&mailbox, 0));
251 EXPECT_EQ(initialSize, webContext()->mostRecentlyProducedSize()); 251 EXPECT_EQ(initialSize, webContext()->mostRecentlyProducedSize());
252 252
253 // Resize to 100x50. 253 // Resize to 100x50.
254 m_drawingBuffer->reset(IntSize(initialWidth, alternateHeight)); 254 m_drawingBuffer->reset(IntSize(initialWidth, alternateHeight));
255 m_drawingBuffer->mailboxReleased(mailbox); 255 m_drawingBuffer->mailboxReleased(mailbox, false);
256 256
257 // Produce a mailbox at this size. 257 // Produce a mailbox at this size.
258 m_drawingBuffer->markContentsChanged(); 258 m_drawingBuffer->markContentsChanged();
259 EXPECT_TRUE(m_drawingBuffer->prepareMailbox(&mailbox, 0)); 259 EXPECT_TRUE(m_drawingBuffer->prepareMailbox(&mailbox, 0));
260 EXPECT_EQ(alternateSize, webContext()->mostRecentlyProducedSize()); 260 EXPECT_EQ(alternateSize, webContext()->mostRecentlyProducedSize());
261 261
262 // Reset to initial size. 262 // Reset to initial size.
263 m_drawingBuffer->reset(IntSize(initialWidth, initialHeight)); 263 m_drawingBuffer->reset(IntSize(initialWidth, initialHeight));
264 m_drawingBuffer->mailboxReleased(mailbox); 264 m_drawingBuffer->mailboxReleased(mailbox, false);
265 265
266 // Prepare another mailbox and verify that it's the correct size. 266 // Prepare another mailbox and verify that it's the correct size.
267 m_drawingBuffer->markContentsChanged(); 267 m_drawingBuffer->markContentsChanged();
268 EXPECT_TRUE(m_drawingBuffer->prepareMailbox(&mailbox, 0)); 268 EXPECT_TRUE(m_drawingBuffer->prepareMailbox(&mailbox, 0));
269 EXPECT_EQ(initialSize, webContext()->mostRecentlyProducedSize()); 269 EXPECT_EQ(initialSize, webContext()->mostRecentlyProducedSize());
270 270
271 // Prepare one final mailbox and verify that it's the correct size. 271 // Prepare one final mailbox and verify that it's the correct size.
272 m_drawingBuffer->mailboxReleased(mailbox); 272 m_drawingBuffer->mailboxReleased(mailbox, false);
273 m_drawingBuffer->markContentsChanged(); 273 m_drawingBuffer->markContentsChanged();
274 EXPECT_TRUE(m_drawingBuffer->prepareMailbox(&mailbox, 0)); 274 EXPECT_TRUE(m_drawingBuffer->prepareMailbox(&mailbox, 0));
275 EXPECT_EQ(initialSize, webContext()->mostRecentlyProducedSize()); 275 EXPECT_EQ(initialSize, webContext()->mostRecentlyProducedSize());
276 m_drawingBuffer->beginDestruction(); 276 m_drawingBuffer->beginDestruction();
277 } 277 }
278 278
279 TEST_F(DrawingBufferTest, verifyDestructionCompleteAfterAllMailboxesReleased) 279 TEST_F(DrawingBufferTest, verifyDestructionCompleteAfterAllMailboxesReleased)
280 { 280 {
281 bool live = true; 281 bool live = true;
282 m_drawingBuffer->m_live = &live; 282 m_drawingBuffer->m_live = &live;
283 283
284 blink::WebExternalTextureMailbox mailbox1; 284 blink::WebExternalTextureMailbox mailbox1;
285 blink::WebExternalTextureMailbox mailbox2; 285 blink::WebExternalTextureMailbox mailbox2;
286 blink::WebExternalTextureMailbox mailbox3; 286 blink::WebExternalTextureMailbox mailbox3;
287 287
288 IntSize initialSize(initialWidth, initialHeight); 288 IntSize initialSize(initialWidth, initialHeight);
289 289
290 // Produce mailboxes. 290 // Produce mailboxes.
291 m_drawingBuffer->markContentsChanged(); 291 m_drawingBuffer->markContentsChanged();
292 EXPECT_TRUE(m_drawingBuffer->prepareMailbox(&mailbox1, 0)); 292 EXPECT_TRUE(m_drawingBuffer->prepareMailbox(&mailbox1, 0));
293 m_drawingBuffer->markContentsChanged(); 293 m_drawingBuffer->markContentsChanged();
294 EXPECT_TRUE(m_drawingBuffer->prepareMailbox(&mailbox2, 0)); 294 EXPECT_TRUE(m_drawingBuffer->prepareMailbox(&mailbox2, 0));
295 m_drawingBuffer->markContentsChanged(); 295 m_drawingBuffer->markContentsChanged();
296 EXPECT_TRUE(m_drawingBuffer->prepareMailbox(&mailbox3, 0)); 296 EXPECT_TRUE(m_drawingBuffer->prepareMailbox(&mailbox3, 0));
297 297
298 m_drawingBuffer->markContentsChanged(); 298 m_drawingBuffer->markContentsChanged();
299 m_drawingBuffer->mailboxReleased(mailbox1); 299 m_drawingBuffer->mailboxReleased(mailbox1, false);
300 300
301 m_drawingBuffer->beginDestruction(); 301 m_drawingBuffer->beginDestruction();
302 EXPECT_EQ(live, true); 302 EXPECT_EQ(live, true);
303 303
304 DrawingBufferForTests* weakPointer = m_drawingBuffer.get(); 304 DrawingBufferForTests* weakPointer = m_drawingBuffer.get();
305 m_drawingBuffer.clear(); 305 m_drawingBuffer.clear();
306 EXPECT_EQ(live, true); 306 EXPECT_EQ(live, true);
307 307
308 weakPointer->markContentsChanged(); 308 weakPointer->markContentsChanged();
309 weakPointer->mailboxReleased(mailbox2); 309 weakPointer->mailboxReleased(mailbox2, false);
310 EXPECT_EQ(live, true); 310 EXPECT_EQ(live, true);
311 311
312 weakPointer->markContentsChanged(); 312 weakPointer->markContentsChanged();
313 weakPointer->mailboxReleased(mailbox3); 313 weakPointer->mailboxReleased(mailbox3, false);
314 EXPECT_EQ(live, false); 314 EXPECT_EQ(live, false);
315 } 315 }
316 316
317 class TextureMailboxWrapper { 317 class TextureMailboxWrapper {
318 public: 318 public:
319 explicit TextureMailboxWrapper(const blink::WebExternalTextureMailbox& mailb ox) 319 explicit TextureMailboxWrapper(const blink::WebExternalTextureMailbox& mailb ox)
320 : m_mailbox(mailbox) 320 : m_mailbox(mailbox)
321 { } 321 { }
322 322
323 bool operator==(const TextureMailboxWrapper& other) const 323 bool operator==(const TextureMailboxWrapper& other) const
(...skipping 14 matching lines...) Expand all
338 // Produce mailboxes. 338 // Produce mailboxes.
339 m_drawingBuffer->markContentsChanged(); 339 m_drawingBuffer->markContentsChanged();
340 EXPECT_TRUE(m_drawingBuffer->prepareMailbox(&mailbox1, 0)); 340 EXPECT_TRUE(m_drawingBuffer->prepareMailbox(&mailbox1, 0));
341 m_drawingBuffer->markContentsChanged(); 341 m_drawingBuffer->markContentsChanged();
342 EXPECT_TRUE(m_drawingBuffer->prepareMailbox(&mailbox2, 0)); 342 EXPECT_TRUE(m_drawingBuffer->prepareMailbox(&mailbox2, 0));
343 m_drawingBuffer->markContentsChanged(); 343 m_drawingBuffer->markContentsChanged();
344 EXPECT_TRUE(m_drawingBuffer->prepareMailbox(&mailbox3, 0)); 344 EXPECT_TRUE(m_drawingBuffer->prepareMailbox(&mailbox3, 0));
345 345
346 // Release mailboxes by specific order; 2, 3, 1. 346 // Release mailboxes by specific order; 2, 3, 1.
347 m_drawingBuffer->markContentsChanged(); 347 m_drawingBuffer->markContentsChanged();
348 m_drawingBuffer->mailboxReleased(mailbox2); 348 m_drawingBuffer->mailboxReleased(mailbox2, false);
349 m_drawingBuffer->markContentsChanged(); 349 m_drawingBuffer->markContentsChanged();
350 m_drawingBuffer->mailboxReleased(mailbox3); 350 m_drawingBuffer->mailboxReleased(mailbox3, false);
351 m_drawingBuffer->markContentsChanged(); 351 m_drawingBuffer->markContentsChanged();
352 m_drawingBuffer->mailboxReleased(mailbox1); 352 m_drawingBuffer->mailboxReleased(mailbox1, false);
353 353
354 // The first recycled mailbox must be 2. 354 // The first recycled mailbox must be 2.
355 blink::WebExternalTextureMailbox recycledMailbox; 355 blink::WebExternalTextureMailbox recycledMailbox;
356 m_drawingBuffer->markContentsChanged(); 356 m_drawingBuffer->markContentsChanged();
357 EXPECT_TRUE(m_drawingBuffer->prepareMailbox(&recycledMailbox, 0)); 357 EXPECT_TRUE(m_drawingBuffer->prepareMailbox(&recycledMailbox, 0));
358 EXPECT_EQ(TextureMailboxWrapper(mailbox2), TextureMailboxWrapper(recycledMai lbox)); 358 EXPECT_EQ(TextureMailboxWrapper(mailbox2), TextureMailboxWrapper(recycledMai lbox));
359 359
360 // The second recycled mailbox must be 3. 360 // The second recycled mailbox must be 3.
361 m_drawingBuffer->markContentsChanged(); 361 m_drawingBuffer->markContentsChanged();
362 EXPECT_TRUE(m_drawingBuffer->prepareMailbox(&recycledMailbox, 0)); 362 EXPECT_TRUE(m_drawingBuffer->prepareMailbox(&recycledMailbox, 0));
363 EXPECT_EQ(TextureMailboxWrapper(mailbox3), TextureMailboxWrapper(recycledMai lbox)); 363 EXPECT_EQ(TextureMailboxWrapper(mailbox3), TextureMailboxWrapper(recycledMai lbox));
364 364
365 // The third recycled mailbox must be 1. 365 // The third recycled mailbox must be 1.
366 m_drawingBuffer->markContentsChanged(); 366 m_drawingBuffer->markContentsChanged();
367 EXPECT_TRUE(m_drawingBuffer->prepareMailbox(&recycledMailbox, 0)); 367 EXPECT_TRUE(m_drawingBuffer->prepareMailbox(&recycledMailbox, 0));
368 EXPECT_EQ(TextureMailboxWrapper(mailbox1), TextureMailboxWrapper(recycledMai lbox)); 368 EXPECT_EQ(TextureMailboxWrapper(mailbox1), TextureMailboxWrapper(recycledMai lbox));
369 369
370 m_drawingBuffer->mailboxReleased(mailbox1); 370 m_drawingBuffer->mailboxReleased(mailbox1, false);
371 m_drawingBuffer->mailboxReleased(mailbox2); 371 m_drawingBuffer->mailboxReleased(mailbox2, false);
372 m_drawingBuffer->mailboxReleased(mailbox3); 372 m_drawingBuffer->mailboxReleased(mailbox3, false);
373 m_drawingBuffer->beginDestruction(); 373 m_drawingBuffer->beginDestruction();
374 } 374 }
375 375
376 TEST_F(DrawingBufferTest, verifyInsertAndWaitSyncPointCorrectly) 376 TEST_F(DrawingBufferTest, verifyInsertAndWaitSyncPointCorrectly)
377 { 377 {
378 blink::WebExternalTextureMailbox mailbox; 378 blink::WebExternalTextureMailbox mailbox;
379 379
380 // Produce mailboxes. 380 // Produce mailboxes.
381 m_drawingBuffer->markContentsChanged(); 381 m_drawingBuffer->markContentsChanged();
382 EXPECT_EQ(0u, webContext()->mostRecentlyWaitedSyncPoint()); 382 EXPECT_EQ(0u, webContext()->mostRecentlyWaitedSyncPoint());
383 EXPECT_TRUE(m_drawingBuffer->prepareMailbox(&mailbox, 0)); 383 EXPECT_TRUE(m_drawingBuffer->prepareMailbox(&mailbox, 0));
384 // prepareMailbox() does not wait for any sync point. 384 // prepareMailbox() does not wait for any sync point.
385 EXPECT_EQ(0u, webContext()->mostRecentlyWaitedSyncPoint()); 385 EXPECT_EQ(0u, webContext()->mostRecentlyWaitedSyncPoint());
386 386
387 unsigned waitSyncPoint = webContext()->insertSyncPoint(); 387 unsigned waitSyncPoint = webContext()->insertSyncPoint();
388 mailbox.syncPoint = waitSyncPoint; 388 mailbox.syncPoint = waitSyncPoint;
389 m_drawingBuffer->mailboxReleased(mailbox); 389 m_drawingBuffer->mailboxReleased(mailbox, false);
390 // m_drawingBuffer will wait for the sync point when recycling. 390 // m_drawingBuffer will wait for the sync point when recycling.
391 EXPECT_EQ(0u, webContext()->mostRecentlyWaitedSyncPoint()); 391 EXPECT_EQ(0u, webContext()->mostRecentlyWaitedSyncPoint());
392 392
393 m_drawingBuffer->markContentsChanged(); 393 m_drawingBuffer->markContentsChanged();
394 EXPECT_TRUE(m_drawingBuffer->prepareMailbox(&mailbox, 0)); 394 EXPECT_TRUE(m_drawingBuffer->prepareMailbox(&mailbox, 0));
395 // m_drawingBuffer waits for the sync point when recycling in prepareMailbox (). 395 // m_drawingBuffer waits for the sync point when recycling in prepareMailbox ().
396 EXPECT_EQ(waitSyncPoint, webContext()->mostRecentlyWaitedSyncPoint()); 396 EXPECT_EQ(waitSyncPoint, webContext()->mostRecentlyWaitedSyncPoint());
397 397
398 m_drawingBuffer->beginDestruction(); 398 m_drawingBuffer->beginDestruction();
399 waitSyncPoint = webContext()->insertSyncPoint(); 399 waitSyncPoint = webContext()->insertSyncPoint();
400 mailbox.syncPoint = waitSyncPoint; 400 mailbox.syncPoint = waitSyncPoint;
401 m_drawingBuffer->mailboxReleased(mailbox); 401 m_drawingBuffer->mailboxReleased(mailbox, false);
402 // m_drawingBuffer waits for the sync point because the destruction is in pr ogress. 402 // m_drawingBuffer waits for the sync point because the destruction is in pr ogress.
403 EXPECT_EQ(waitSyncPoint, webContext()->mostRecentlyWaitedSyncPoint()); 403 EXPECT_EQ(waitSyncPoint, webContext()->mostRecentlyWaitedSyncPoint());
404 } 404 }
405 405
406 class DrawingBufferImageChromiumTest : public DrawingBufferTest { 406 class DrawingBufferImageChromiumTest : public DrawingBufferTest {
407 protected: 407 protected:
408 virtual void SetUp() 408 virtual void SetUp()
409 { 409 {
410 RefPtr<FakeContextEvictionManager> contextEvictionManager = adoptRef(new FakeContextEvictionManager()); 410 RefPtr<FakeContextEvictionManager> contextEvictionManager = adoptRef(new FakeContextEvictionManager());
411 OwnPtr<WebGraphicsContext3DForTests> context = adoptPtr(new WebGraphicsC ontext3DForTests); 411 OwnPtr<WebGraphicsContext3DForTests> context = adoptPtr(new WebGraphicsC ontext3DForTests);
(...skipping 28 matching lines...) Expand all
440 EXPECT_EQ(initialSize, webContext()->mostRecentlyProducedSize()); 440 EXPECT_EQ(initialSize, webContext()->mostRecentlyProducedSize());
441 EXPECT_TRUE(mailbox.allowOverlay); 441 EXPECT_TRUE(mailbox.allowOverlay);
442 testing::Mock::VerifyAndClearExpectations(webContext()); 442 testing::Mock::VerifyAndClearExpectations(webContext());
443 443
444 WGC3Duint m_imageId2 = webContext()->nextImageIdToBeCreated(); 444 WGC3Duint m_imageId2 = webContext()->nextImageIdToBeCreated();
445 EXPECT_CALL(*webContext(), bindTexImage2DMock(m_imageId2)).Times(1); 445 EXPECT_CALL(*webContext(), bindTexImage2DMock(m_imageId2)).Times(1);
446 EXPECT_CALL(*webContext(), destroyImageMock(m_imageId0)).Times(1); 446 EXPECT_CALL(*webContext(), destroyImageMock(m_imageId0)).Times(1);
447 EXPECT_CALL(*webContext(), releaseTexImage2DMock(m_imageId0)).Times(1); 447 EXPECT_CALL(*webContext(), releaseTexImage2DMock(m_imageId0)).Times(1);
448 // Resize to 100x50. 448 // Resize to 100x50.
449 m_drawingBuffer->reset(IntSize(initialWidth, alternateHeight)); 449 m_drawingBuffer->reset(IntSize(initialWidth, alternateHeight));
450 m_drawingBuffer->mailboxReleased(mailbox); 450 m_drawingBuffer->mailboxReleased(mailbox, false);
451 testing::Mock::VerifyAndClearExpectations(webContext()); 451 testing::Mock::VerifyAndClearExpectations(webContext());
452 452
453 WGC3Duint m_imageId3 = webContext()->nextImageIdToBeCreated(); 453 WGC3Duint m_imageId3 = webContext()->nextImageIdToBeCreated();
454 EXPECT_CALL(*webContext(), bindTexImage2DMock(m_imageId3)).Times(1); 454 EXPECT_CALL(*webContext(), bindTexImage2DMock(m_imageId3)).Times(1);
455 EXPECT_CALL(*webContext(), destroyImageMock(m_imageId1)).Times(1); 455 EXPECT_CALL(*webContext(), destroyImageMock(m_imageId1)).Times(1);
456 EXPECT_CALL(*webContext(), releaseTexImage2DMock(m_imageId1)).Times(1); 456 EXPECT_CALL(*webContext(), releaseTexImage2DMock(m_imageId1)).Times(1);
457 // Produce a mailbox at this size. 457 // Produce a mailbox at this size.
458 m_drawingBuffer->markContentsChanged(); 458 m_drawingBuffer->markContentsChanged();
459 EXPECT_TRUE(m_drawingBuffer->prepareMailbox(&mailbox, 0)); 459 EXPECT_TRUE(m_drawingBuffer->prepareMailbox(&mailbox, 0));
460 EXPECT_EQ(alternateSize, webContext()->mostRecentlyProducedSize()); 460 EXPECT_EQ(alternateSize, webContext()->mostRecentlyProducedSize());
461 EXPECT_TRUE(mailbox.allowOverlay); 461 EXPECT_TRUE(mailbox.allowOverlay);
462 testing::Mock::VerifyAndClearExpectations(webContext()); 462 testing::Mock::VerifyAndClearExpectations(webContext());
463 463
464 WGC3Duint m_imageId4 = webContext()->nextImageIdToBeCreated(); 464 WGC3Duint m_imageId4 = webContext()->nextImageIdToBeCreated();
465 EXPECT_CALL(*webContext(), bindTexImage2DMock(m_imageId4)).Times(1); 465 EXPECT_CALL(*webContext(), bindTexImage2DMock(m_imageId4)).Times(1);
466 EXPECT_CALL(*webContext(), destroyImageMock(m_imageId2)).Times(1); 466 EXPECT_CALL(*webContext(), destroyImageMock(m_imageId2)).Times(1);
467 EXPECT_CALL(*webContext(), releaseTexImage2DMock(m_imageId2)).Times(1); 467 EXPECT_CALL(*webContext(), releaseTexImage2DMock(m_imageId2)).Times(1);
468 // Reset to initial size. 468 // Reset to initial size.
469 m_drawingBuffer->reset(IntSize(initialWidth, initialHeight)); 469 m_drawingBuffer->reset(IntSize(initialWidth, initialHeight));
470 m_drawingBuffer->mailboxReleased(mailbox); 470 m_drawingBuffer->mailboxReleased(mailbox, false);
471 testing::Mock::VerifyAndClearExpectations(webContext()); 471 testing::Mock::VerifyAndClearExpectations(webContext());
472 472
473 WGC3Duint m_imageId5 = webContext()->nextImageIdToBeCreated(); 473 WGC3Duint m_imageId5 = webContext()->nextImageIdToBeCreated();
474 EXPECT_CALL(*webContext(), bindTexImage2DMock(m_imageId5)).Times(1); 474 EXPECT_CALL(*webContext(), bindTexImage2DMock(m_imageId5)).Times(1);
475 EXPECT_CALL(*webContext(), destroyImageMock(m_imageId3)).Times(1); 475 EXPECT_CALL(*webContext(), destroyImageMock(m_imageId3)).Times(1);
476 EXPECT_CALL(*webContext(), releaseTexImage2DMock(m_imageId3)).Times(1); 476 EXPECT_CALL(*webContext(), releaseTexImage2DMock(m_imageId3)).Times(1);
477 // Prepare another mailbox and verify that it's the correct size. 477 // Prepare another mailbox and verify that it's the correct size.
478 m_drawingBuffer->markContentsChanged(); 478 m_drawingBuffer->markContentsChanged();
479 EXPECT_TRUE(m_drawingBuffer->prepareMailbox(&mailbox, 0)); 479 EXPECT_TRUE(m_drawingBuffer->prepareMailbox(&mailbox, 0));
480 EXPECT_EQ(initialSize, webContext()->mostRecentlyProducedSize()); 480 EXPECT_EQ(initialSize, webContext()->mostRecentlyProducedSize());
481 EXPECT_TRUE(mailbox.allowOverlay); 481 EXPECT_TRUE(mailbox.allowOverlay);
482 testing::Mock::VerifyAndClearExpectations(webContext()); 482 testing::Mock::VerifyAndClearExpectations(webContext());
483 483
484 // Prepare one final mailbox and verify that it's the correct size. 484 // Prepare one final mailbox and verify that it's the correct size.
485 m_drawingBuffer->mailboxReleased(mailbox); 485 m_drawingBuffer->mailboxReleased(mailbox, false);
486 m_drawingBuffer->markContentsChanged(); 486 m_drawingBuffer->markContentsChanged();
487 EXPECT_TRUE(m_drawingBuffer->prepareMailbox(&mailbox, 0)); 487 EXPECT_TRUE(m_drawingBuffer->prepareMailbox(&mailbox, 0));
488 EXPECT_EQ(initialSize, webContext()->mostRecentlyProducedSize()); 488 EXPECT_EQ(initialSize, webContext()->mostRecentlyProducedSize());
489 EXPECT_TRUE(mailbox.allowOverlay); 489 EXPECT_TRUE(mailbox.allowOverlay);
490 m_drawingBuffer->mailboxReleased(mailbox); 490 m_drawingBuffer->mailboxReleased(mailbox, false);
491 491
492 EXPECT_CALL(*webContext(), destroyImageMock(m_imageId5)).Times(1); 492 EXPECT_CALL(*webContext(), destroyImageMock(m_imageId5)).Times(1);
493 EXPECT_CALL(*webContext(), releaseTexImage2DMock(m_imageId5)).Times(1); 493 EXPECT_CALL(*webContext(), releaseTexImage2DMock(m_imageId5)).Times(1);
494 EXPECT_CALL(*webContext(), destroyImageMock(m_imageId4)).Times(1); 494 EXPECT_CALL(*webContext(), destroyImageMock(m_imageId4)).Times(1);
495 EXPECT_CALL(*webContext(), releaseTexImage2DMock(m_imageId4)).Times(1); 495 EXPECT_CALL(*webContext(), releaseTexImage2DMock(m_imageId4)).Times(1);
496 m_drawingBuffer->beginDestruction(); 496 m_drawingBuffer->beginDestruction();
497 testing::Mock::VerifyAndClearExpectations(webContext()); 497 testing::Mock::VerifyAndClearExpectations(webContext());
498 } 498 }
499 499
500 class DepthStencilTrackingContext : public MockWebGraphicsContext3D { 500 class DepthStencilTrackingContext : public MockWebGraphicsContext3D {
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
614 } else { 614 } else {
615 EXPECT_EQ(0u, trackingContext->stencilAttachment()); 615 EXPECT_EQ(0u, trackingContext->stencilAttachment());
616 EXPECT_EQ(0u, trackingContext->depthAttachment()); 616 EXPECT_EQ(0u, trackingContext->depthAttachment());
617 } 617 }
618 618
619 drawingBuffer->beginDestruction(); 619 drawingBuffer->beginDestruction();
620 } 620 }
621 } 621 }
622 622
623 } // namespace 623 } // namespace
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698