| // Copyright 2019 The Chromium 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 SERVICES_VIZ_PUBLIC_INTERFACES_GPU_MOJOM_BLINK_TEST_UTILS_H_ |
| #define SERVICES_VIZ_PUBLIC_INTERFACES_GPU_MOJOM_BLINK_TEST_UTILS_H_ |
| |
| #include "services/viz/public/interfaces/gpu.mojom-blink.h" |
| |
| |
| namespace viz { |
| namespace mojom { |
| namespace blink { |
| |
| |
| class GpuMemoryBufferFactoryInterceptorForTesting : public GpuMemoryBufferFactory { |
| virtual GpuMemoryBufferFactory* GetForwardingInterface() = 0; |
| void CreateGpuMemoryBuffer(::gfx::mojom::blink::GpuMemoryBufferIdPtr id, const ::blink::WebSize& size, ::gfx::mojom::blink::BufferFormat format, ::gfx::mojom::blink::BufferUsage usage, CreateGpuMemoryBufferCallback callback) override; |
| void DestroyGpuMemoryBuffer(::gfx::mojom::blink::GpuMemoryBufferIdPtr id, const ::gpu::SyncToken& sync_token) override; |
| }; |
| class GpuMemoryBufferFactoryAsyncWaiter { |
| public: |
| explicit GpuMemoryBufferFactoryAsyncWaiter(GpuMemoryBufferFactory* proxy); |
| ~GpuMemoryBufferFactoryAsyncWaiter(); |
| void CreateGpuMemoryBuffer( |
| ::gfx::mojom::blink::GpuMemoryBufferIdPtr id, const ::blink::WebSize& size, ::gfx::mojom::blink::BufferFormat format, ::gfx::mojom::blink::BufferUsage usage, ::gfx::mojom::blink::GpuMemoryBufferHandlePtr* out_buffer_handle); |
| |
| private: |
| GpuMemoryBufferFactory* const proxy_; |
| |
| DISALLOW_COPY_AND_ASSIGN(GpuMemoryBufferFactoryAsyncWaiter); |
| }; |
| |
| |
| class GpuInterceptorForTesting : public Gpu { |
| virtual Gpu* GetForwardingInterface() = 0; |
| void CreateGpuMemoryBufferFactory(GpuMemoryBufferFactoryRequest request) override; |
| void EstablishGpuChannel(EstablishGpuChannelCallback callback) override; |
| void CreateVideoEncodeAcceleratorProvider(::media::mojom::blink::VideoEncodeAcceleratorProviderRequest vea_provider) override; |
| }; |
| class GpuAsyncWaiter { |
| public: |
| explicit GpuAsyncWaiter(Gpu* proxy); |
| ~GpuAsyncWaiter(); |
| void EstablishGpuChannel( |
| int32_t* out_client_id, mojo::ScopedMessagePipeHandle* out_channel_handle, ::gpu::mojom::blink::GpuInfoPtr* out_gpu_info, ::gpu::mojom::blink::GpuFeatureInfoPtr* out_gpu_feature_info); |
| |
| private: |
| Gpu* const proxy_; |
| |
| DISALLOW_COPY_AND_ASSIGN(GpuAsyncWaiter); |
| }; |
| |
| |
| |
| |
| } // namespace blink |
| } // namespace mojom |
| } // namespace viz |
| |
| #endif // SERVICES_VIZ_PUBLIC_INTERFACES_GPU_MOJOM_BLINK_TEST_UTILS_H_ |