// Copyright (c) Wojciech Figat. All rights reserved. #pragma once #include "Engine/Graphics/Shaders/GPUShaderProgram.h" #include "Engine/Core/Types/DataContainer.h" #include "Engine/Core/Collections/Dictionary.h" #if GRAPHICS_API_WEBGPU /// /// Shaders base class for Web GPU backend. /// template class GPUShaderProgramWebGPU : public BaseType { public: GPUShaderProgramWebGPU(const GPUShaderProgramInitializer& initializer) { BaseType::Init(initializer); } ~GPUShaderProgramWebGPU() { } public: // [BaseType] uint32 GetBufferSize() const override { return 0; } void* GetBufferHandle() const override { return nullptr; } }; /// /// Vertex Shader for Web GPU backend. /// class GPUShaderProgramVSWebGPU : public GPUShaderProgramWebGPU { public: GPUShaderProgramVSWebGPU(const GPUShaderProgramInitializer& initializer, GPUVertexLayout* inputLayout, GPUVertexLayout* vertexLayout, Span bytecode) : GPUShaderProgramWebGPU(initializer) { InputLayout = inputLayout; Layout = vertexLayout; } }; /// /// Pixel Shader for Web GPU backend. /// class GPUShaderProgramPSWebGPU : public GPUShaderProgramWebGPU { public: GPUShaderProgramPSWebGPU(const GPUShaderProgramInitializer& initializer) : GPUShaderProgramWebGPU(initializer) { } }; #endif