Multiple small fixes
- Foreign functions can now have names for parameters - Fix property renaming crash - Properly output texture sampling calls
This commit is contained in:
262
hlsl_builtin.shd
Normal file
262
hlsl_builtin.shd
Normal file
@@ -0,0 +1,262 @@
|
||||
float2 :: struct {
|
||||
x : float;
|
||||
y : float;
|
||||
}
|
||||
|
||||
float3 :: struct {
|
||||
x : float;
|
||||
y : float;
|
||||
z : float;
|
||||
}
|
||||
|
||||
float4 :: struct {
|
||||
x : float;
|
||||
y : float;
|
||||
z : float;
|
||||
w : float;
|
||||
}
|
||||
|
||||
float4x4 :: struct {
|
||||
m11 : float;
|
||||
m12 : float;
|
||||
m13 : float;
|
||||
m14 : float;
|
||||
m21 : float;
|
||||
m22 : float;
|
||||
m23 : float;
|
||||
m24 : float;
|
||||
m31 : float;
|
||||
m32 : float;
|
||||
m33 : float;
|
||||
m34 : float;
|
||||
m41 : float;
|
||||
m42 : float;
|
||||
m43 : float;
|
||||
m44 : float;
|
||||
}
|
||||
|
||||
int2 :: struct {
|
||||
x : int;
|
||||
y : int;
|
||||
}
|
||||
|
||||
int3 :: struct {
|
||||
x : int;
|
||||
y : int;
|
||||
z : int;
|
||||
}
|
||||
|
||||
int4 :: struct {
|
||||
x : int;
|
||||
y : int;
|
||||
z : int;
|
||||
w : int;
|
||||
}
|
||||
|
||||
int4x4 :: struct {
|
||||
m11 : int;
|
||||
m12 : int;
|
||||
m13 : int;
|
||||
m14 : int;
|
||||
m21 : int;
|
||||
m22 : int;
|
||||
m23 : int;
|
||||
m24 : int;
|
||||
m31 : int;
|
||||
m32 : int;
|
||||
m33 : int;
|
||||
m34 : int;
|
||||
m41 : int;
|
||||
m42 : int;
|
||||
m43 : int;
|
||||
m44 : int;
|
||||
}
|
||||
|
||||
//~ nbr: Constructors
|
||||
#foreign float2 :: (float, float) -> float2;
|
||||
#foreign float3 :: (float, float, float) -> float3;
|
||||
#foreign float4 :: (float, float, float, float) -> float4;
|
||||
|
||||
//~ nbr: Vectors
|
||||
#foreign cross :: (float3, float3) -> float3;
|
||||
#foreign distance :: (float2, float2) -> float;
|
||||
#foreign distance :: (float3, float3) -> float;
|
||||
#foreign distance :: (float4, float4) -> float;
|
||||
|
||||
#foreign dot :: (float2, float2) -> float;
|
||||
#foreign dot :: (float3, float3) -> float;
|
||||
#foreign dot :: (float4, float4) -> float;
|
||||
|
||||
#foreign normalize :: (float2) -> float2;
|
||||
#foreign normalize :: (float3) -> float3;
|
||||
#foreign normalize :: (float4) -> float4;
|
||||
|
||||
#foreign transpose :: (float4x4) -> float4x4;
|
||||
|
||||
//~ nbr: Multiplies
|
||||
#foreign mul :: (float2, float2) -> float;
|
||||
#foreign mul :: (float3, float3) -> float;
|
||||
#foreign mul :: (float4, float4) -> float;
|
||||
#foreign mul :: (float4x4, float4x4) -> float4x4;
|
||||
#foreign mul :: (float, float2) -> float2;
|
||||
#foreign mul :: (float, float3) -> float3;
|
||||
#foreign mul :: (float, float4) -> float4;
|
||||
|
||||
#foreign mul :: (float, float4x4) -> float4x4;
|
||||
#foreign mul :: (float4x4, float) -> float4x4;
|
||||
#foreign mul :: (float4x4, float4) -> float4;
|
||||
#foreign mul :: (float2, float) -> float2;
|
||||
#foreign mul :: (float3, float) -> float3;
|
||||
#foreign mul :: (float4, float) -> float4;
|
||||
|
||||
#foreign mul :: (float4, float4x4) -> float4x4;
|
||||
|
||||
//~ nbr: General
|
||||
#foreign abs :: (float) -> float;
|
||||
#foreign abs :: (float2) -> float2;
|
||||
#foreign abs :: (float3) -> float3;
|
||||
#foreign abs :: (float4) -> float4;
|
||||
#foreign abs :: (float4x4) -> float4x4;
|
||||
|
||||
#foreign min :: (float) -> float;
|
||||
#foreign min :: (float2) -> float2;
|
||||
#foreign min :: (float3) -> float3;
|
||||
#foreign min :: (float4) -> float4;
|
||||
#foreign min :: (float4x4) -> float4x4;
|
||||
|
||||
#foreign max :: (float) -> float;
|
||||
#foreign max :: (float2) -> float2;
|
||||
#foreign max :: (float3) -> float3;
|
||||
#foreign max :: (float4) -> float4;
|
||||
#foreign max :: (float4x4) -> float4x4;
|
||||
|
||||
#foreign ceil :: (float) -> float;
|
||||
#foreign ceil :: (float2) -> float2;
|
||||
#foreign ceil :: (float3) -> float3;
|
||||
#foreign ceil :: (float4) -> float4;
|
||||
#foreign ceil :: (float4x4) -> float4x4;
|
||||
|
||||
#foreign floor :: (float) -> float;
|
||||
#foreign floor :: (float2) -> float2;
|
||||
#foreign floor :: (float3) -> float3;
|
||||
#foreign floor :: (float4) -> float4;
|
||||
#foreign floor :: (float4x4) -> float4x4;
|
||||
|
||||
#foreign round :: (float) -> float;
|
||||
#foreign round :: (float2) -> float2;
|
||||
#foreign round :: (float3) -> float3;
|
||||
#foreign round :: (float4) -> float4;
|
||||
#foreign round :: (float4x4) -> float4x4;
|
||||
|
||||
#foreign clamp :: (float, float, float) -> float;
|
||||
#foreign clamp :: (float2, float2, float2) -> float2;
|
||||
#foreign clamp :: (float3, float3, float3) -> float3;
|
||||
#foreign clamp :: (float4, float4, float4) -> float4;
|
||||
#foreign clamp :: (float4x4, float4x4, float4x4) -> float4x4;
|
||||
|
||||
#foreign log :: (float) -> float;
|
||||
#foreign log :: (float2) -> float2;
|
||||
#foreign log :: (float3) -> float3;
|
||||
#foreign log :: (float4) -> float4;
|
||||
#foreign log :: (float4x4) -> float4x4;
|
||||
|
||||
#foreign log2 :: (float) -> float;
|
||||
#foreign log2 :: (float2) -> float2;
|
||||
#foreign log2 :: (float3) -> float3;
|
||||
#foreign log2 :: (float4) -> float4;
|
||||
#foreign log2 :: (float4x4) -> float4x4;
|
||||
|
||||
#foreign log10 :: (float) -> float;
|
||||
#foreign log10 :: (float2) -> float2;
|
||||
#foreign log10 :: (float3) -> float3;
|
||||
#foreign log10 :: (float4) -> float4;
|
||||
#foreign log10 :: (float4x4) -> float4x4;
|
||||
|
||||
#foreign pow :: (float, float, float) -> float;
|
||||
#foreign pow :: (float2, float2, float2) -> float2;
|
||||
#foreign pow :: (float3, float3, float3) -> float3;
|
||||
#foreign pow :: (float4, float4, float4) -> float4;
|
||||
#foreign pow :: (float4x4, float4x4, float4x4) -> float4x4;
|
||||
|
||||
#foreign smoothstep :: (float, float, float) -> float;
|
||||
#foreign smoothstep :: (float2, float2, float2) -> float2;
|
||||
#foreign smoothstep :: (float3, float3, float3) -> float3;
|
||||
#foreign smoothstep :: (float4, float4, float4) -> float4;
|
||||
#foreign smoothstep :: (float4x4, float4x4, float4x4) -> float4x4;
|
||||
|
||||
#foreign step :: (float, float) -> float;
|
||||
#foreign step :: (float2, float2) -> float2;
|
||||
#foreign step :: (float3, float3) -> float3;
|
||||
#foreign step :: (float4, float4) -> float4;
|
||||
#foreign step :: (float4x4, float4x4) -> float4x4;
|
||||
|
||||
#foreign sqrt :: (float) -> float;
|
||||
#foreign sqrt :: (float2) -> float2;
|
||||
#foreign sqrt :: (float3) -> float3;
|
||||
#foreign sqrt :: (float4) -> float4;
|
||||
#foreign sqrt :: (float4x4) -> float4x4;
|
||||
|
||||
|
||||
|
||||
//~ nbr: Trigonometry
|
||||
#foreign cos :: (float) -> float;
|
||||
#foreign cos :: (float2) -> float2;
|
||||
#foreign cos :: (float3) -> float3;
|
||||
#foreign cos :: (float4) -> float4;
|
||||
#foreign cos :: (float4x4) -> float4x4;
|
||||
|
||||
#foreign cosh :: (float) -> float;
|
||||
#foreign cosh :: (float2) -> float2;
|
||||
#foreign cosh :: (float3) -> float3;
|
||||
#foreign cosh :: (float4) -> float4;
|
||||
#foreign cosh :: (float4x4) -> float4x4;
|
||||
|
||||
#foreign acos :: (float) -> float;
|
||||
#foreign acos :: (float2) -> float2;
|
||||
#foreign acos :: (float3) -> float3;
|
||||
#foreign acos :: (float4) -> float4;
|
||||
#foreign acos :: (float4x4) -> float4x4;
|
||||
|
||||
#foreign sin :: (float) -> float;
|
||||
#foreign sin :: (float2) -> float2;
|
||||
#foreign sin :: (float3) -> float3;
|
||||
#foreign sin :: (float4) -> float4;
|
||||
#foreign sin :: (float4x4) -> float4x4;
|
||||
|
||||
#foreign sinh :: (float) -> float;
|
||||
#foreign sinh :: (float2) -> float2;
|
||||
#foreign sinh :: (float3) -> float3;
|
||||
#foreign sinh :: (float4) -> float4;
|
||||
#foreign sinh :: (float4x4) -> float4x4;
|
||||
|
||||
#foreign asin :: (float) -> float;
|
||||
#foreign asin :: (float2) -> float2;
|
||||
#foreign asin :: (float3) -> float3;
|
||||
#foreign asin :: (float4) -> float4;
|
||||
#foreign asin :: (float4x4) -> float4x4;
|
||||
|
||||
#foreign tan :: (float) -> float;
|
||||
#foreign tan :: (float2) -> float2;
|
||||
#foreign tan :: (float3) -> float3;
|
||||
#foreign tan :: (float4) -> float4;
|
||||
#foreign tan :: (float4x4) -> float4x4;
|
||||
|
||||
#foreign tanh :: (float) -> float;
|
||||
#foreign tanh :: (float2) -> float2;
|
||||
#foreign tanh :: (float3) -> float3;
|
||||
#foreign tanh :: (float4) -> float4;
|
||||
#foreign tanh :: (float4x4) -> float4x4;
|
||||
|
||||
#foreign atan :: (float) -> float;
|
||||
#foreign atan :: (float2) -> float2;
|
||||
#foreign atan :: (float3) -> float3;
|
||||
#foreign atan :: (float4) -> float4;
|
||||
#foreign atan :: (float4x4) -> float4x4;
|
||||
|
||||
#foreign atan2 :: (float, float) -> float;
|
||||
#foreign atan2 :: (float2, float2) -> float2;
|
||||
#foreign atan2 :: (float3, float3) -> float3;
|
||||
#foreign atan2 :: (float4, float4) -> float4;
|
||||
#foreign atan2 :: (float4x4, float4x4) -> float4x4;
|
||||
|
||||
#foreign sample :: (Texture2D, float2, Sampler) -> float4;
|
||||
Reference in New Issue
Block a user