obs-StreamFX/data/effects/shared.effect

84 lines
2.4 KiB
Plaintext

// AUTOGENERATED COPYRIGHT HEADER START
// Copyright (C) 2021-2023 Michael Fabian 'Xaymar' Dirks <info@xaymar.com>
// Copyright (C) 2023 brighten <brightenqtompkins@gmail.com>
// AUTOGENERATED COPYRIGHT HEADER END
//------------------------------------------------------------------------------
// 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"