| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "base/message_loop/message_loop.h" | 5 #include "base/message_loop/message_loop.h" |
| 6 #include "gpu/GLES2/gl2extchromium.h" | 6 #include "gpu/GLES2/gl2extchromium.h" |
| 7 #include "gpu/command_buffer/client/gles2_interface_stub.h" | 7 #include "gpu/command_buffer/client/gles2_interface_stub.h" |
| 8 #include "media/base/timestamp_constants.h" | 8 #include "media/base/timestamp_constants.h" |
| 9 #include "media/base/video_frame.h" | 9 #include "media/base/video_frame.h" |
| 10 #include "media/base/video_util.h" | 10 #include "media/base/video_util.h" |
| (...skipping 449 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 460 } | 460 } |
| 461 | 461 |
| 462 namespace { | 462 namespace { |
| 463 class TestGLES2Interface : public gpu::gles2::GLES2InterfaceStub { | 463 class TestGLES2Interface : public gpu::gles2::GLES2InterfaceStub { |
| 464 public: | 464 public: |
| 465 void GenTextures(GLsizei n, GLuint* textures) override { | 465 void GenTextures(GLsizei n, GLuint* textures) override { |
| 466 DCHECK_EQ(1, n); | 466 DCHECK_EQ(1, n); |
| 467 *textures = 1; | 467 *textures = 1; |
| 468 } | 468 } |
| 469 }; | 469 }; |
| 470 void MailboxHoldersReleased(uint32 sync_point) {} | 470 void MailboxHoldersReleased(const gpu::SyncToken& sync_token) {} |
| 471 } // namespace | 471 } // namespace |
| 472 | 472 |
| 473 // Test that SkCanvasVideoRendererTest::Paint doesn't crash when GrContext is | 473 // Test that SkCanvasVideoRendererTest::Paint doesn't crash when GrContext is |
| 474 // abandoned. | 474 // abandoned. |
| 475 TEST_F(SkCanvasVideoRendererTest, ContextLost) { | 475 TEST_F(SkCanvasVideoRendererTest, ContextLost) { |
| 476 skia::RefPtr<const GrGLInterface> null_interface = | 476 skia::RefPtr<const GrGLInterface> null_interface = |
| 477 skia::AdoptRef(GrGLCreateNullInterface()); | 477 skia::AdoptRef(GrGLCreateNullInterface()); |
| 478 auto gr_context = skia::AdoptRef(GrContext::Create( | 478 auto gr_context = skia::AdoptRef(GrContext::Create( |
| 479 kOpenGL_GrBackend, | 479 kOpenGL_GrBackend, |
| 480 reinterpret_cast<GrBackendContext>(null_interface.get()))); | 480 reinterpret_cast<GrBackendContext>(null_interface.get()))); |
| 481 gr_context->abandonContext(); | 481 gr_context->abandonContext(); |
| 482 | 482 |
| 483 SkCanvas canvas(AllocBitmap(kWidth, kHeight)); | 483 SkCanvas canvas(AllocBitmap(kWidth, kHeight)); |
| 484 | 484 |
| 485 TestGLES2Interface gles2; | 485 TestGLES2Interface gles2; |
| 486 Context3D context_3d(&gles2, gr_context.get()); | 486 Context3D context_3d(&gles2, gr_context.get()); |
| 487 gfx::Size size(kWidth, kHeight); | 487 gfx::Size size(kWidth, kHeight); |
| 488 gpu::MailboxHolder mailbox(gpu::Mailbox::Generate(), GL_TEXTURE_RECTANGLE_ARB, | 488 gpu::MailboxHolder mailbox(gpu::Mailbox::Generate(), |
| 489 0); | 489 gpu::SyncToken(), |
| 490 GL_TEXTURE_RECTANGLE_ARB); |
| 490 auto video_frame = VideoFrame::WrapNativeTexture( | 491 auto video_frame = VideoFrame::WrapNativeTexture( |
| 491 PIXEL_FORMAT_UYVY, mailbox, base::Bind(MailboxHoldersReleased), size, | 492 PIXEL_FORMAT_UYVY, mailbox, base::Bind(MailboxHoldersReleased), size, |
| 492 gfx::Rect(size), size, kNoTimestamp()); | 493 gfx::Rect(size), size, kNoTimestamp()); |
| 493 | 494 |
| 494 renderer_.Paint(video_frame, &canvas, kNaturalRect, 0xFF, | 495 renderer_.Paint(video_frame, &canvas, kNaturalRect, 0xFF, |
| 495 SkXfermode::kSrcOver_Mode, VIDEO_ROTATION_90, context_3d); | 496 SkXfermode::kSrcOver_Mode, VIDEO_ROTATION_90, context_3d); |
| 496 } | 497 } |
| 497 } // namespace media | 498 } // namespace media |
| OLD | NEW |