| // Copyright 2019 The Chromium Authors | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| #ifndef GPU_COMMAND_BUFFER_CLIENT_WEBGPU_INTERFACE_STUB_H_ | |
| #define GPU_COMMAND_BUFFER_CLIENT_WEBGPU_INTERFACE_STUB_H_ | |
| #include "gpu/command_buffer/client/webgpu_interface.h" | |
| namespace gpu { | |
| namespace webgpu { | |
| // This class a stub to help with mocks for the WebGPUInterface class. | |
| class WebGPUInterfaceStub : public WebGPUInterface { | |
| public: | |
| WebGPUInterfaceStub(); | |
| ~WebGPUInterfaceStub() override; | |
| // InterfaceBase implementation. | |
| void GenSyncTokenCHROMIUM(GLbyte* sync_token) override; | |
| void GenUnverifiedSyncTokenCHROMIUM(GLbyte* sync_token) override; | |
| void VerifySyncTokensCHROMIUM(GLbyte** sync_tokens, GLsizei count) override; | |
| void WaitSyncTokenCHROMIUM(const GLbyte* sync_token) override; | |
| void ShallowFlushCHROMIUM() override; | |
| // WebGPUInterface implementation | |
| scoped_refptr<APIChannel> GetAPIChannel() const override; | |
| void FlushCommands() override; | |
| bool EnsureAwaitingFlush() override; | |
| void FlushAwaitingCommands() override; | |
| ReservedTexture ReserveTexture( | |
| WGPUDevice device, | |
| const WGPUTextureDescriptor* optionalDesc) override; | |
| ReservedBuffer ReserveBuffer( | |
| WGPUDevice device, | |
| const WGPUBufferDescriptor* optionalDesc) override; | |
| WGPUDevice DeprecatedEnsureDefaultDeviceSync() override; | |
| void AssociateMailbox(GLuint device_id, | |
| GLuint device_generation, | |
| GLuint id, | |
| GLuint generation, | |
| uint64_t usage, | |
| uint64_t internal_usage, | |
| const WGPUTextureFormat* view_formats, | |
| GLuint view_format_count, | |
| MailboxFlags flags, | |
| const Mailbox& mailbox) override; | |
| void AssociateMailboxForBuffer(GLuint device_id, | |
| GLuint device_generation, | |
| GLuint id, | |
| GLuint generation, | |
| uint64_t usage, | |
| const Mailbox& mailbox) override; | |
| // Include the auto-generated part of this class. We split this because | |
| // it means we can easily edit the non-auto generated parts right here in | |
| // this file instead of having to edit some template or the code generator. | |
| #include "gpu/command_buffer/client/webgpu_interface_stub_autogen.h" | |
| private: | |
| scoped_refptr<APIChannel> api_channel_; | |
| }; | |
| } // namespace webgpu | |
| } // namespace gpu | |
| #endif // GPU_COMMAND_BUFFER_CLIENT_WEBGPU_INTERFACE_STUB_H_ |