зеркало из https://github.com/stride3d/xkslang.git
80 строки
1.7 KiB
GLSL
80 строки
1.7 KiB
GLSL
|
|
struct PS_OUTPUT { float4 color : SV_Target0; };
|
|
|
|
int i;
|
|
uint u;
|
|
float f;
|
|
bool b;
|
|
|
|
int2 i2;
|
|
uint2 u2;
|
|
float2 f2;
|
|
bool2 b2;
|
|
|
|
Buffer <float> g_tTexbfs;
|
|
Texture1D <float4> g_tTex1df4;
|
|
uint upos;
|
|
float fpos;
|
|
|
|
PS_OUTPUT main()
|
|
{
|
|
// Same shapes:
|
|
|
|
float r00 = max(b, f);
|
|
uint r01 = max(b, u);
|
|
int r02 = max(b, i);
|
|
float r03 = max(i, f);
|
|
float r04 = max(u, f);
|
|
|
|
float2 r10 = max(b2, f2);
|
|
uint2 r11 = max(b2, u2);
|
|
int2 r12 = max(b2, i2);
|
|
float2 r13 = max(i2, f2);
|
|
float2 r14 = max(u2, f2);
|
|
|
|
float2 r20 = clamp(i2, u2, f2); // 3 args, converts all to best type.
|
|
uint2 r21 = clamp(b2, u2, b2);
|
|
float2 r22 = clamp(b2, f2, b2);
|
|
|
|
// Mixed shapes:
|
|
float2 r30 = max(b, f2);
|
|
uint2 r31 = max(b, u2);
|
|
int2 r32 = max(b, i2);
|
|
float2 r33 = max(i, f2);
|
|
float2 r34 = max(u, f2);
|
|
|
|
float2 r40 = clamp(i, u2, f2); // 3 args, converts all to best type.
|
|
uint2 r41 = clamp(b2, u, b2);
|
|
float2 r42 = clamp(b2, f, b);
|
|
int2 r43 = clamp(i, i2, u2);
|
|
|
|
float r50 = g_tTexbfs.Load(upos);
|
|
float r51 = g_tTexbfs.Load(fpos);
|
|
|
|
int MipLevel;
|
|
|
|
uint WidthU;
|
|
uint HeightU;
|
|
uint ElementsU;
|
|
uint DepthU;
|
|
uint NumberOfLevelsU;
|
|
uint NumberOfSamplesU;
|
|
|
|
int WidthI;
|
|
int HeightI;
|
|
int ElementsI;
|
|
int DepthI;
|
|
int NumberOfLevelsI;
|
|
int NumberOfSamplesI;
|
|
|
|
g_tTex1df4 . GetDimensions(WidthI);
|
|
g_tTex1df4 . GetDimensions(6, WidthI, NumberOfLevelsU);
|
|
g_tTex1df4 . GetDimensions(6, WidthU, NumberOfLevelsI);
|
|
g_tTex1df4 . GetDimensions(6, WidthI, NumberOfLevelsI);
|
|
|
|
// max(i2, f2);
|
|
PS_OUTPUT ps_output;
|
|
ps_output.color = r00;
|
|
return ps_output;
|
|
};
|