/* * Copyright (c) Contributors to the Open 3D Engine Project. * For complete copyright and license terms please see the LICENSE at the root of this distribution. * * SPDX-License-Identifier: Apache-2.0 OR MIT * */ #pragma once #include #include #include #include namespace AZ { namespace Data { class AssetHandler; } namespace RHI { class ShaderPlatformInterface; } namespace ShaderBuilder { struct AzslData; class ShaderAssetBuilder : public AssetBuilderSDK::AssetBuilderCommandBus::Handler { public: AZ_TYPE_INFO(ShaderAssetBuilder, "{C94DA151-82BC-4475-86FA-E6C92A0BD6F8}"); static constexpr const char* ShaderAssetBuilderJobKey = "Shader Asset"; ShaderAssetBuilder() = default; ~ShaderAssetBuilder() = default; // Asset Builder Callback Functions ... void CreateJobs(const AssetBuilderSDK::CreateJobsRequest& request, AssetBuilderSDK::CreateJobsResponse& response) const; void ProcessJob(const AssetBuilderSDK::ProcessJobRequest& request, AssetBuilderSDK::ProcessJobResponse& response) const; // AssetBuilderSDK::AssetBuilderCommandBus interface overrides ... void ShutDown() override { }; private: AZ_DISABLE_COPY_MOVE(ShaderAssetBuilder); }; } // ShaderBuilder } // AZ