|  | // Copyright 2013 The Flutter Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | #ifndef FLUTTER_TESTING_TEST_VULKAN_SURFACE_IMPL_H_ | 
|  | #define FLUTTER_TESTING_TEST_VULKAN_SURFACE_IMPL_H_ | 
|  |  | 
|  | #include <memory> | 
|  | #include "flutter/testing/test_vulkan_context.h" | 
|  |  | 
|  | #include "third_party/skia/include/core/SkRefCnt.h" | 
|  | #include "third_party/skia/include/core/SkSize.h" | 
|  | #include "third_party/skia/include/gpu/GrDirectContext.h" | 
|  |  | 
|  | namespace flutter { | 
|  |  | 
|  | namespace testing { | 
|  |  | 
|  | class TestVulkanSurface { | 
|  | public: | 
|  | static std::unique_ptr<TestVulkanSurface> Create( | 
|  | const TestVulkanContext& context, | 
|  | const SkISize& surface_size); | 
|  |  | 
|  | bool IsValid() const; | 
|  |  | 
|  | sk_sp<SkImage> GetSurfaceSnapshot() const; | 
|  |  | 
|  | VkImage GetImage(); | 
|  |  | 
|  | private: | 
|  | explicit TestVulkanSurface(TestVulkanImage&& image); | 
|  |  | 
|  | TestVulkanImage image_; | 
|  | sk_sp<SkSurface> surface_; | 
|  | }; | 
|  |  | 
|  | }  // namespace testing | 
|  | }  // namespace flutter | 
|  |  | 
|  | #endif  // FLUTTER_TESTING_TEST_VULKAN_SURFACE_IMPL_H_ |