📄 slang_core.gc
字号:
float bInv, x; __asm float_rcp bInv, b; __asm vec4_multiply x, a, bInv; __asm vec4_to_ivec4 __retVal, x;}//// Basic ivec2 operatorsivec2 __operator + (const ivec2 a, const ivec2 b){ __asm vec4_add __retVal, a, b;}ivec2 __operator - (const ivec2 a, const ivec2 b){ __asm vec4_subtract __retVal, a, b;}ivec2 __operator * (const ivec2 a, const ivec2 b){ __asm vec4_multiply __retVal, a, b;}ivec2 __operator / (const ivec2 a, const ivec2 b){ vec2 bInv, x; __asm float_rcp bInv.x, b.x; __asm float_rcp bInv.y, b.y; __asm vec4_multiply x, a, bInv; __asm vec4_to_ivec4 __retVal, x;}//// Basic ivec3 operatorsivec3 __operator + (const ivec3 a, const ivec3 b){ __asm vec4_add __retVal, a, b;}ivec3 __operator - (const ivec3 a, const ivec3 b){ __asm vec4_subtract __retVal, a, b;}ivec3 __operator * (const ivec3 a, const ivec3 b){ __asm vec4_multiply __retVal, a, b;}ivec3 __operator / (const ivec3 a, const ivec3 b){ vec3 bInv, x; __asm float_rcp bInv.x, b.x; __asm float_rcp bInv.y, b.y; __asm float_rcp bInv.z, b.z; __asm vec4_multiply x, a, bInv; __asm vec4_to_ivec4 __retVal, x;}//// Basic ivec4 operatorsivec4 __operator + (const ivec4 a, const ivec4 b){ __asm vec4_add __retVal, a, b;}ivec4 __operator - (const ivec4 a, const ivec4 b){ __asm vec4_subtract __retVal, a, b;}ivec4 __operator * (const ivec4 a, const ivec4 b){ __asm vec4_multiply __retVal, a, b;}ivec4 __operator / (const ivec4 a, const ivec4 b){ vec4 bInv, x; __asm float_rcp bInv.x, b.x; __asm float_rcp bInv.y, b.y; __asm float_rcp bInv.z, b.z; __asm float_rcp bInv.w, b.w; __asm vec4_multiply x, a, bInv; __asm vec4_to_ivec4 __retVal, x;}//// Basic float operatorsfloat __operator + (const float a, const float b){ __asm vec4_add __retVal, a, b;}float __operator - (const float a, const float b){ __asm vec4_subtract __retVal, a, b;}float __operator * (const float a, const float b){ __asm vec4_multiply __retVal, a, b;}float __operator / (const float a, const float b){ float bInv; __asm float_rcp bInv.x, b; __asm vec4_multiply __retVal, a, bInv;}//// Basic vec2 operatorsvec2 __operator + (const vec2 v, const vec2 u){ __asm vec4_add __retVal.xy, v, u;}vec2 __operator - (const vec2 v, const vec2 u){ __asm vec4_subtract __retVal.xy, v, u;}vec2 __operator * (const vec2 v, const vec2 u){ __asm vec4_multiply __retVal.xy, v, u;}vec2 __operator / (const vec2 v, const vec2 u){ vec2 w; // = 1 / u __asm float_rcp w.x, u.x; __asm float_rcp w.y, u.y; __asm vec4_multiply __retVal.xy, v, w;}//// Basic vec3 operatorsvec3 __operator + (const vec3 v, const vec3 u){ __asm vec4_add __retVal.xyz, v, u;}vec3 __operator - (const vec3 v, const vec3 u){ __asm vec4_subtract __retVal.xyz, v, u;}vec3 __operator * (const vec3 v, const vec3 u){ __asm vec4_multiply __retVal.xyz, v, u;}vec3 __operator / (const vec3 v, const vec3 u){ vec3 w; // = 1 / u __asm float_rcp w.x, u.x; __asm float_rcp w.y, u.y; __asm float_rcp w.z, u.z; __asm vec4_multiply __retVal.xyz, v, w;}//// Basic vec4 operatorsvec4 __operator + (const vec4 v, const vec4 u){ __asm vec4_add __retVal, v, u;}vec4 __operator - (const vec4 v, const vec4 u){ __asm vec4_subtract __retVal, v, u;}vec4 __operator * (const vec4 v, const vec4 u){ __asm vec4_multiply __retVal, v, u;}vec4 __operator / (const vec4 v, const vec4 u){ vec4 w; // = 1 / u __asm float_rcp w.x, u.x; __asm float_rcp w.y, u.y; __asm float_rcp w.z, u.z; __asm float_rcp w.w, u.w; __asm vec4_multiply __retVal, v, w;}//// Basic vec2/float operatorsvec2 __operator + (const float a, const vec2 u){ __asm vec4_add __retVal.xy, a, u.xy;}vec2 __operator + (const vec2 v, const float b){ __asm vec4_add __retVal.xy, v.xy, b;}vec2 __operator - (const float a, const vec2 u){ __asm vec4_subtract __retVal.xy, a, u.xy;}vec2 __operator - (const vec2 v, const float b){ __asm vec4_subtract __retVal.xy, v.xy, b;}vec2 __operator * (const float a, const vec2 u){ __asm vec4_multiply __retVal.xy, a, u.xy;}vec2 __operator * (const vec2 v, const float b){ __asm vec4_multiply __retVal.xy, v.xy, b;}vec2 __operator / (const float a, const vec2 u){ vec2 invU; __asm float_rcp invU.x, u.x; __asm float_rcp invU.y, u.y; __asm vec4_multiply __retVal.xy, a, invU.xy;}vec2 __operator / (const vec2 v, const float b){ float invB; __asm float_rcp invB, b; __asm vec4_multiply __retVal.xy, v.xy, invB;}//// Basic vec3/float operatorsvec3 __operator + (const float a, const vec3 u){ __asm vec4_add __retVal.xyz, a, u.xyz;}vec3 __operator + (const vec3 v, const float b){ __asm vec4_add __retVal.xyz, v.xyz, b;}vec3 __operator - (const float a, const vec3 u){ __asm vec4_subtract __retVal.xyz, a, u.xyz;}vec3 __operator - (const vec3 v, const float b){ __asm vec4_subtract __retVal.xyz, v.xyz, b;}vec3 __operator * (const float a, const vec3 u){ __asm vec4_multiply __retVal.xyz, a, u.xyz;}vec3 __operator * (const vec3 v, const float b){ __asm vec4_multiply __retVal.xyz, v.xyz, b;}vec3 __operator / (const float a, const vec3 u){ vec3 invU; __asm float_rcp invU.x, u.x; __asm float_rcp invU.y, u.y; __asm float_rcp invU.z, u.z; __asm vec4_multiply __retVal.xyz, a, invU.xyz;}vec3 __operator / (const vec3 v, const float b){ float invB; __asm float_rcp invB, b; __asm vec4_multiply __retVal.xyz, v.xyz, invB;}//// Basic vec4/float operatorsvec4 __operator + (const float a, const vec4 u){ __asm vec4_add __retVal, a, u;}vec4 __operator + (const vec4 v, const float b){ __asm vec4_add __retVal, v, b;}vec4 __operator - (const float a, const vec4 u){ __asm vec4_subtract __retVal, a, u;}vec4 __operator - (const vec4 v, const float b){ __asm vec4_subtract __retVal, v, b;}vec4 __operator * (const float a, const vec4 u){ __asm vec4_multiply __retVal, a, u;}vec4 __operator * (const vec4 v, const float b){ __asm vec4_multiply __retVal, v, b;}vec4 __operator / (const float a, const vec4 u){ vec4 invU; __asm float_rcp invU.x, u.x; __asm float_rcp invU.y, u.y; __asm float_rcp invU.z, u.z; __asm float_rcp invU.w, u.w; __asm vec4_multiply __retVal, a, invU;}vec4 __operator / (const vec4 v, const float b){ float invB; __asm float_rcp invB, b; __asm vec4_multiply __retVal, v, invB;}//// Basic ivec2/int operatorsivec2 __operator + (const int a, const ivec2 u){ __retVal = ivec2(a) + u;}ivec2 __operator + (const ivec2 v, const int b){ __retVal = v + ivec2(b);}ivec2 __operator - (const int a, const ivec2 u){ __retVal = ivec2(a) - u;}ivec2 __operator - (const ivec2 v, const int b){ __retVal = v - ivec2(b);}ivec2 __operator * (const int a, const ivec2 u){ __retVal = ivec2(a) * u;}ivec2 __operator * (const ivec2 v, const int b){ __retVal = v * ivec2(b);}ivec2 __operator / (const int a, const ivec2 u){ __retVal = ivec2(a) / u;}ivec2 __operator / (const ivec2 v, const int b){ __retVal = v / ivec2(b);}//// Basic ivec3/int operatorsivec3 __operator + (const int a, const ivec3 u){ __retVal = ivec3(a) + u;}ivec3 __operator + (const ivec3 v, const int b){ __retVal = v + ivec3(b);}ivec3 __operator - (const int a, const ivec3 u){ __retVal = ivec3(a) - u;}ivec3 __operator - (const ivec3 v, const int b){ __retVal = v - ivec3(b);}ivec3 __operator * (const int a, const ivec3 u){ __retVal = ivec3(a) * u;}ivec3 __operator * (const ivec3 v, const int b){ __retVal = v * ivec3(b);}ivec3 __operator / (const int a, const ivec3 u){ __retVal = ivec3(a) / u;}ivec3 __operator / (const ivec3 v, const int b){ __retVal = v / ivec3(b);}//// Basic ivec4/int operatorsivec4 __operator + (const int a, const ivec4 u){ __retVal = ivec4(a) + u;}ivec4 __operator + (const ivec4 v, const int b){ __retVal = v + ivec4(b);}ivec4 __operator - (const int a, const ivec4 u){ __retVal = ivec4(a) - u;}ivec4 __operator - (const ivec4 v, const int b){ __retVal = v - ivec4(b);}ivec4 __operator * (const int a, const ivec4 u){ __retVal = ivec4(a) * u;}ivec4 __operator * (const ivec4 v, const int b){ __retVal = v * ivec4(b);}ivec4 __operator / (const int a, const ivec4 u){ __retVal = ivec4(a) / u;}ivec4 __operator / (const ivec4 v, const int b){ __retVal = v / ivec4(b);}//// Unary negation operatorint __operator - (const int a){ __asm vec4_negate __retVal.x, a;}ivec2 __operator - (const ivec2 v){ __asm vec4_negate __retVal, v;}ivec3 __operator - (const ivec3 v){ __asm vec4_negate __retVal, v;}ivec4 __operator - (const ivec4 v){ __asm vec4_negate __retVal, v;}float __operator - (const float a){ __asm vec4_negate __retVal.x, a;}vec2 __operator - (const vec2 v){ __asm vec4_negate __retVal.xy, v.xy;}vec3 __operator - (const vec3 v){ __asm vec4_negate __retVal.xyz, v.xyz;}vec4 __operator - (const vec4 v){ __asm vec4_negate __retVal, v;}mat2 __operator - (const mat2 m){ __retVal[0] = -m[0]; __retVal[1] = -m[1];}mat3 __operator - (const mat3 m){ __retVal[0] = -m[0]; __retVal[1] = -m[1]; __retVal[2] = -m[2];}mat4 __operator - (const mat4 m){ __retVal[0] = -m[0]; __retVal[1] = -m[1]; __retVal[2] = -m[2]; __retVal[3] = -m[3];}//// dot productfloat dot(const float a, const float b){ __retVal = a * b;}float dot(const vec2 a, const vec2 b){ __retVal = a.x * b.x + a.y * b.y;}float dot(const vec3 a, const vec3 b){ __asm vec3_dot __retVal, a, b;}float dot(const vec4 a, const vec4 b){ __asm vec4_dot __retVal, a, b;}//// int assignment operatorsvoid __operator += (inout int a, const int b){ __asm vec4_add a, a, b;}void __operator -= (inout int a, const int b){ __asm vec4_subtract a, a, b;}void __operator *= (inout int a, const int b){ __asm vec4_multiply a, a, b;}void __operator /= (inout int a, const int b){ float invB; __asm float_rcp invB, b; __asm vec4_multiply a, a, invB; __asm vec4_to_ivec4 a, a;}//// ivec2 assignment operatorsvoid __operator += (inout ivec2 v, const ivec2 u){ __asm vec4_add v, v, u;}void __operator -= (inout ivec2 v, const ivec2 u){ __asm vec4_subtract v, v, u;}void __operator *= (inout ivec2 v, const ivec2 u){ __asm vec4_multiply v, v, u;}void __operator /= (inout ivec2 v, const ivec2 u){ ivec2 inv, z; __asm float_rcp inv.x, u.x; __asm float_rcp inv.y, u.y; __asm vec4_multiply z, v, inv; __asm vec4_to_ivec4 v, z;}//// ivec3 assignment operatorsvoid __operator += (inout ivec3 v, const ivec3 u){ __asm vec4_add v, v, u;}void __operator -= (inout ivec3 v, const ivec3 u){ __asm vec4_subtract v, v, u;}void __operator *= (inout ivec3 v, const ivec3 u){ __asm vec4_multiply v, v, u;}void __operator /= (inout ivec3 v, const ivec3 u){ ivec3 inv, z;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -