2019-12-05 04:48:57 +00:00
|
|
|
// Copyright 2019 Dolphin Emulator Project
|
|
|
|
// Licensed under GPLv2+
|
|
|
|
// Refer to the license.txt file included.
|
|
|
|
|
2019-02-15 01:59:50 +00:00
|
|
|
#pragma once
|
2019-12-05 04:48:57 +00:00
|
|
|
|
2019-02-15 01:59:50 +00:00
|
|
|
#include <string>
|
|
|
|
#include "VideoCommon/VideoCommon.h"
|
|
|
|
|
|
|
|
enum class EFBReinterpretType;
|
2019-07-14 05:24:12 +00:00
|
|
|
enum class TextureFormat;
|
2019-02-15 01:59:50 +00:00
|
|
|
|
|
|
|
namespace FramebufferShaderGen
|
|
|
|
{
|
|
|
|
struct Config
|
|
|
|
{
|
|
|
|
Config(APIType api_type_, u32 efb_samples_, u32 efb_layers_, bool ssaa_)
|
|
|
|
: api_type(api_type_), efb_samples(efb_samples_), efb_layers(efb_layers_), ssaa(ssaa_)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
APIType api_type;
|
|
|
|
u32 efb_samples;
|
|
|
|
u32 efb_layers;
|
|
|
|
bool ssaa;
|
|
|
|
};
|
|
|
|
|
|
|
|
std::string GenerateScreenQuadVertexShader();
|
|
|
|
std::string GeneratePassthroughGeometryShader(u32 num_tex, u32 num_colors);
|
|
|
|
std::string GenerateTextureCopyVertexShader();
|
|
|
|
std::string GenerateTextureCopyPixelShader();
|
|
|
|
std::string GenerateResolveDepthPixelShader(u32 samples);
|
|
|
|
std::string GenerateClearVertexShader();
|
|
|
|
std::string GenerateEFBPokeVertexShader();
|
|
|
|
std::string GenerateColorPixelShader();
|
|
|
|
std::string GenerateFormatConversionShader(EFBReinterpretType convtype, u32 samples);
|
2019-07-14 05:24:12 +00:00
|
|
|
std::string GenerateTextureReinterpretShader(TextureFormat from_format, TextureFormat to_format);
|
2019-06-29 11:05:30 +00:00
|
|
|
std::string GenerateEFBRestorePixelShader();
|
2019-10-02 02:52:45 +00:00
|
|
|
std::string GenerateImGuiVertexShader();
|
|
|
|
std::string GenerateImGuiPixelShader();
|
2019-02-15 01:59:50 +00:00
|
|
|
|
|
|
|
} // namespace FramebufferShaderGen
|