1234567891011121314151617181920212223242526272829303132333435363738 |
- // Copyright 2022 Dolphin Emulator Project
- // SPDX-License-Identifier: GPL-2.0-or-later
- #pragma once
- #include <cstddef>
- #include <optional>
- #include <string_view>
- #include <vector>
- #include "ShaderLang.h"
- #include "Common/CommonTypes.h"
- #include "VideoCommon/VideoCommon.h"
- namespace SPIRV
- {
- // SPIR-V compiled code type
- using CodeType = u32;
- using CodeVector = std::vector<CodeType>;
- // Compile a vertex shader to SPIR-V.
- std::optional<CodeVector> CompileVertexShader(std::string_view source_code, APIType api_type,
- glslang::EShTargetLanguageVersion language_version);
- // Compile a geometry shader to SPIR-V.
- std::optional<CodeVector> CompileGeometryShader(std::string_view source_code, APIType api_type,
- glslang::EShTargetLanguageVersion language_version);
- // Compile a fragment shader to SPIR-V.
- std::optional<CodeVector> CompileFragmentShader(std::string_view source_code, APIType api_type,
- glslang::EShTargetLanguageVersion language_version);
- // Compile a compute shader to SPIR-V.
- std::optional<CodeVector> CompileComputeShader(std::string_view source_code, APIType api_type,
- glslang::EShTargetLanguageVersion language_version);
- } // namespace SPIRV
|