gpu_shadergen.h (852B)
1 // SPDX-FileCopyrightText: 2019-2023 Connor McLaughlin <stenzek@gmail.com> 2 // SPDX-License-Identifier: GPL-3.0 3 4 #pragma once 5 6 #include "util/shadergen.h" 7 8 class GPUShaderGen : public ShaderGen 9 { 10 public: 11 GPUShaderGen(RenderAPI render_api, bool supports_dual_source_blend, bool supports_framebuffer_fetch); 12 ~GPUShaderGen(); 13 14 std::string GenerateDisplayVertexShader(); 15 std::string GenerateDisplayFragmentShader(bool clamp_uv); 16 std::string GenerateDisplaySharpBilinearFragmentShader(); 17 18 std::string GenerateInterleavedFieldExtractFragmentShader(); 19 std::string GenerateDeinterlaceWeaveFragmentShader(); 20 std::string GenerateDeinterlaceBlendFragmentShader(); 21 std::string GenerateFastMADReconstructFragmentShader(); 22 23 std::string GenerateChromaSmoothingFragmentShader(); 24 25 private: 26 void WriteDisplayUniformBuffer(std::stringstream& ss); 27 };