mirror of
https://github.com/Xaymar/obs-StreamFX
synced 2024-11-11 14:25:05 +00:00
adc38738f7
Fixes #696
78 lines
2.2 KiB
Text
78 lines
2.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;
|
|
};
|
|
|
|
struct VertexColorData {
|
|
float4 pos : POSITION;
|
|
float4 clr : COLOR;
|
|
float2 uv : TEXCOORD0;
|
|
};
|
|
|
|
//------------------------------------------------------------------------------
|
|
// Vertex Shaders
|
|
//------------------------------------------------------------------------------
|
|
VertexData DefaultVertexShader(VertexData vtx) {
|
|
vtx.pos = mul(float4(vtx.pos.xyz, 1.0), ViewProj);
|
|
return vtx;
|
|
};
|
|
|
|
VertexColorData ColorVertexShader(VertexColorData 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"
|