duckstation

duckstation, but archived from the revision just before upstream changed it to a proprietary software project, this version is the libre one
git clone https://git.neptards.moe/u3shit/duckstation.git
Log | Files | Refs | README | LICENSE

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 };