1 // Copyright 2017 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "third_party/blink/renderer/platform/graphics/canvas_resource.h" 6 7 #include "base/run_loop.h" 8 #include "components/viz/common/resources/single_release_callback.h" 9 #include "components/viz/common/resources/transferable_resource.h" 10 #include "components/viz/test/test_gpu_memory_buffer_manager.h" 11 #include "gpu/GLES2/gl2extchromium.h" 12 #include "gpu/command_buffer/common/gpu_memory_buffer_support.h" 13 #include "testing/gmock/include/gmock/gmock.h" 14 #include "testing/gtest/include/gtest/gtest.h" 15 #include "third_party/blink/renderer/platform/graphics/gpu/shared_gpu_context.h" 16 #include "third_party/blink/renderer/platform/graphics/static_bitmap_image.h" 17 #include "third_party/blink/renderer/platform/graphics/test/fake_gles2_interface.h" 18 #include "third_party/blink/renderer/platform/graphics/test/fake_web_graphics_context_3d_provider.h" 19 #include "third_party/blink/renderer/platform/graphics/test/gpu_memory_buffer_test_platform.h" 20 #include "third_party/blink/renderer/platform/wtf/functional.h" 21 #include "third_party/skia/include/core/SkSurface.h" 22 23 namespace blink { 24 TEST(CanvasResourceTest,PrepareTransferableResource_SharedBitmap)25TEST(CanvasResourceTest, PrepareTransferableResource_SharedBitmap) { 26 scoped_refptr<CanvasResource> canvas_resource = 27 CanvasResourceSharedBitmap::Create(IntSize(10, 10), CanvasColorParams(), 28 nullptr, // CanvasResourceProvider 29 kLow_SkFilterQuality); 30 EXPECT_TRUE(!!canvas_resource); 31 viz::TransferableResource resource; 32 std::unique_ptr<viz::SingleReleaseCallback> release_callback; 33 bool success = canvas_resource->PrepareTransferableResource( 34 &resource, &release_callback, kUnverifiedSyncToken); 35 36 EXPECT_TRUE(success); 37 EXPECT_TRUE(resource.is_software); 38 39 release_callback->Run(gpu::SyncToken(), false); 40 } 41 42 } // namespace blink 43