obs-StreamFX/data/effects/shared.effect
Michael Fabian 'Xaymar' Dirks 889fea6422 effects: Add standard effect file
There are a number of duplicate shader routines we should combine into a single shader to save disk space, and remove unexpected errors in one copy but not the other.
2023-04-05 18:51:22 +02:00

67 lines
2 KiB
Text

//------------------------------------------------------------------------------
// HLSL/GLSL Support
//------------------------------------------------------------------------------
// OBS Studio does not correctly translate all HLSL functionality to GLSL.
// log10(x) is HLSL-exclusive and not translated by OBS Shader Parser.
#define m_log10(x) (log(x) / log(10))
//------------------------------------------------------------------------------
// Uniforms
//------------------------------------------------------------------------------
// View Projection Matrix
uniform float4x4 ViewProj;
//------------------------------------------------------------------------------
// Samplers
//------------------------------------------------------------------------------
sampler_state BlankSampler {
};
sampler_state PointRepeatSampler {
Filter = Point;
AddressU = Repeat;
AddressV = Repeat;
};
sampler_state PointClampSampler {
Filter = Point;
AddressU = Clamp;
AddressV = Clamp;
};
sampler_state LinearRepeatSampler {
Filter = Linear;
AddressU = Repeat;
AddressV = Repeat;
};
sampler_state LinearClampSampler {
Filter = Linear;
AddressU = Clamp;
AddressV = Clamp;
};
//------------------------------------------------------------------------------
// Structures
//------------------------------------------------------------------------------
struct VertexData {
float4 pos : POSITION;
float2 uv : TEXCOORD0;
};
//------------------------------------------------------------------------------
// Vertex Shaders
//------------------------------------------------------------------------------
VertexData DefaultVertexShader(VertexData vtx) {
vtx.pos = mul(float4(vtx.pos.xyz, 1.0), ViewProj);
return vtx;
};
//------------------------------------------------------------------------------
// Color Conversion
//------------------------------------------------------------------------------
#include "color_conversion_rgb_yuv.effect"
#include "color_conversion_rgb_hsv.effect"
#include "color_conversion_rgb_hsl.effect"