📄 slang_core.gc
字号:
//// mat3 assignment operatorsvoid __operator += (inout mat3 m, const mat3 n){ m[0] += n[0]; m[1] += n[1]; m[2] += n[2];}void __operator -= (inout mat3 m, const mat3 n){ m[0] -= n[0]; m[1] -= n[1]; m[2] -= n[2];}void __operator *= (inout mat3 m, const mat3 n){ m = m * n;}void __operator /= (inout mat3 m, const mat3 n){ m[0] /= n[0]; m[1] /= n[1]; m[2] /= n[2];}// mat4 assignment operatorsvoid __operator += (inout mat4 m, const mat4 n){ m[0] += n[0]; m[1] += n[1]; m[2] += n[2]; m[3] += n[3];}void __operator -= (inout mat4 m, const mat4 n) { m[0] -= n[0]; m[1] -= n[1]; m[2] -= n[2]; m[3] -= n[3];}void __operator *= (inout mat4 m, const mat4 n){ m = m * n;}void __operator /= (inout mat4 m, const mat4 n){ m[0] /= n[0]; m[1] /= n[1]; m[2] /= n[2]; m[3] /= n[3];}//// mat2/float assignment operatorsvoid __operator += (inout mat2 m, const float a) { m[0] += a; m[1] += a;}void __operator -= (inout mat2 m, const float a) { m[0] -= a; m[1] -= a;}void __operator *= (inout mat2 m, const float a) { m[0] *= a; m[1] *= a;}void __operator /= (inout mat2 m, const float a) { m[0] /= a; m[1] /= a;}//// mat3/float assignment operatorsvoid __operator += (inout mat3 m, const float a) { m[0] += a; m[1] += a; m[2] += a;}void __operator -= (inout mat3 m, const float a) { m[0] -= a; m[1] -= a; m[2] -= a;}void __operator *= (inout mat3 m, const float a) { m[0] *= a; m[1] *= a; m[2] *= a;}void __operator /= (inout mat3 m, const float a) { m[0] /= a; m[1] /= a; m[2] /= a;}//// mat4/float assignment operatorsvoid __operator += (inout mat4 m, const float a) { m[0] += a; m[1] += a; m[2] += a; m[3] += a;}void __operator -= (inout mat4 m, const float a) { m[0] -= a; m[1] -= a; m[2] -= a; m[3] -= a;}void __operator *= (inout mat4 m, const float a) { m[0] *= a; m[1] *= a; m[2] *= a; m[3] *= a;}void __operator /= (inout mat4 m, const float a) { m[0] /= a; m[1] /= a; m[2] /= a; m[3] /= a;}//// vec/mat assignment operatorsvoid __operator *= (inout vec2 v, const mat2 m){ v = v * m;}void __operator *= (inout vec3 v, const mat3 m){ v = v * m;}void __operator *= (inout vec4 v, const mat4 m){ v = v * m;}//// pre-decrement operatorsint __operator --(inout int a){ a = a - 1; __retVal = a;}ivec2 __operator --(inout ivec2 v){ v = v - ivec2(1); __retVal = v;}ivec3 __operator --(inout ivec3 v){ v = v - ivec3(1); __retVal = v;}ivec4 __operator --(inout ivec4 v){ v = v - ivec4(1); __retVal = v;}float __operator --(inout float a){ a = a - 1.0; __retVal = a;}vec2 __operator --(inout vec2 v){ v = v - vec2(1.0); __retVal = v;}vec3 __operator --(inout vec3 v){ v = v - vec3(1.0); __retVal = v;}vec4 __operator --(inout vec4 v){ v = v - vec4(1.0); __retVal = v;}mat2 __operator --(inout mat2 m){ m[0] = m[0] - vec2(1.0); m[1] = m[1] - vec2(1.0); __retVal = m;}mat3 __operator --(inout mat3 m){ m[0] = m[0] - vec3(1.0); m[1] = m[1] - vec3(1.0); m[2] = m[2] - vec3(1.0); __retVal = m;}mat4 __operator --(inout mat4 m){ m[0] = m[0] - vec4(1.0); m[1] = m[1] - vec4(1.0); m[2] = m[2] - vec4(1.0); m[3] = m[3] - vec4(1.0); __retVal = m;}//// pre-increment operatorsint __operator ++(inout int a){ a = a + 1; __retVal = a;}ivec2 __operator ++(inout ivec2 v){ v = v + ivec2(1); __retVal = v;}ivec3 __operator ++(inout ivec3 v){ v = v + ivec3(1); __retVal = v;}ivec4 __operator ++(inout ivec4 v){ v = v + ivec4(1); __retVal = v;}float __operator ++(inout float a){ a = a + 1.0; __retVal = a;}vec2 __operator ++(inout vec2 v){ v = v + vec2(1.0); __retVal = v;}vec3 __operator ++(inout vec3 v){ v = v + vec3(1.0); __retVal = v;}vec4 __operator ++(inout vec4 v){ v = v + vec4(1.0); __retVal = v;}mat2 __operator ++(inout mat2 m){ m[0] = m[0] + vec2(1.0); m[1] = m[1] + vec2(1.0); __retVal = m;}mat3 __operator ++(inout mat3 m){ m[0] = m[0] + vec3(1.0); m[1] = m[1] + vec3(1.0); m[2] = m[2] + vec3(1.0); __retVal = m;}mat4 __operator ++(inout mat4 m){ m[0] = m[0] + vec4(1.0); m[1] = m[1] + vec4(1.0); m[2] = m[2] + vec4(1.0); m[3] = m[3] + vec4(1.0); __retVal = m;}//// post-decrementint __postDecr(inout int a){ __retVal = a; a = a - 1;}ivec2 __postDecr(inout ivec2 v){ __retVal = v; v = v - ivec2(1);}ivec3 __postDecr(inout ivec3 v){ __retVal = v; v = v - ivec3(1);}ivec4 __postDecr(inout ivec4 v){ __retVal = v; v = v - ivec4(1);}float __postDecr(inout float a){ __retVal = a; a = a - 1.0;}vec2 __postDecr(inout vec2 v){ __retVal = v; v = v - vec2(1.0);}vec3 __postDecr(inout vec3 v){ __retVal = v; v = v - vec3(1.0);}vec4 __postDecr(inout vec4 v){ __retVal = v; v = v - vec4(1.0);}mat2 __postDecr(inout mat2 m){ __retVal = m; m[0] = m[0] - vec2(1.0); m[1] = m[1] - vec2(1.0);}mat3 __postDecr(inout mat3 m){ __retVal = m; m[0] = m[0] - vec3(1.0); m[1] = m[1] - vec3(1.0); m[2] = m[2] - vec3(1.0);}mat4 __postDecr(inout mat4 m){ __retVal = m; m[0] = m[0] - vec4(1.0); m[1] = m[1] - vec4(1.0); m[2] = m[2] - vec4(1.0); m[3] = m[3] - vec4(1.0);}//// post-incrementfloat __postIncr(inout float a){ __retVal = a; a = a + 1;}vec2 __postIncr(inout vec2 v){ __retVal = v; v = v + vec2(1.0);}vec3 __postIncr(inout vec3 v){ __retVal = v; v = v + vec3(1.0);}vec4 __postIncr(inout vec4 v){ __retVal = v; v = v + vec4(1.0);}int __postIncr(inout int a){ __retVal = a; a = a + 1;}ivec2 __postIncr(inout ivec2 v){ __retVal = v; v = v + ivec2(1);}ivec3 __postIncr(inout ivec3 v){ __retVal = v; v = v + ivec3(1);}ivec4 __postIncr(inout ivec4 v){ __retVal = v; v = v + ivec3(1);}mat2 __postIncr(inout mat2 m){ mat2 n = m; m[0] = m[0] + vec2(1.0); m[1] = m[1] + vec2(1.0); return n;}mat3 __postIncr(inout mat3 m){ mat3 n = m; m[0] = m[0] + vec3(1.0); m[1] = m[1] + vec3(1.0); m[2] = m[2] + vec3(1.0); return n;}mat4 __postIncr(inout mat4 m){ mat4 n = m; m[0] = m[0] + vec4(1.0); m[1] = m[1] + vec4(1.0); m[2] = m[2] + vec4(1.0); m[3] = m[3] + vec4(1.0); return n;}//// inequality operators// XXX are the inequality operators for floats/ints really needed????bool __operator < (const float a, const float b){ __asm vec4_sgt __retVal.x, b, a;}bool __operator < (const int a, const int b) { return float (a) < float (b);}bool __operator > (const float a, const float b) { bool c; __asm float_less c, b, a; return c;}bool __operator > (const int a, const int b) { return float (a) > float (b);}bool __operator >= (const float a, const float b) { bool g, e; __asm float_less g, b, a; __asm float_equal e, a, b; return g || e;}bool __operator >= (const int a, const int b) { return float (a) >= float (b);}bool __operator <= (const float a, const float b) { bool g, e; __asm float_less g, a, b; __asm float_equal e, a, b; return g || e;}bool __operator <= (const int a, const int b) { return float (a) <= float (b);}//// MESA-specific extension functions.//void printMESA (const float f) { __asm float_print f;}void printMESA (const int i) { __asm int_print i;}void printMESA (const bool b) { __asm bool_print b;}void printMESA (const vec2 v) { printMESA (v.x); printMESA (v.y);}void printMESA (const vec3 v) { printMESA (v.x); printMESA (v.y); printMESA (v.z);}void printMESA (const vec4 v) { printMESA (v.x); printMESA (v.y); printMESA (v.z); printMESA (v.w);}void printMESA (const ivec2 v) { printMESA (v.x); printMESA (v.y);}void printMESA (const ivec3 v) { printMESA (v.x); printMESA (v.y); printMESA (v.z);}void printMESA (const ivec4 v) { printMESA (v.x); printMESA (v.y); printMESA (v.z); printMESA (v.w);}void printMESA (const bvec2 v) { printMESA (v.x); printMESA (v.y);}void printMESA (const bvec3 v) { printMESA (v.x); printMESA (v.y); printMESA (v.z);}void printMESA (const bvec4 v) { printMESA (v.x); printMESA (v.y); printMESA (v.z); printMESA (v.w);}void printMESA (const mat2 m) { printMESA (m[0]); printMESA (m[1]);}void printMESA (const mat3 m) { printMESA (m[0]); printMESA (m[1]); printMESA (m[2]);}void printMESA (const mat4 m) { printMESA (m[0]); printMESA (m[1]); printMESA (m[2]); printMESA (m[3]);}void printMESA (const sampler1D e) { __asm int_print e;}void printMESA (const sampler2D e) { __asm int_print e;}void printMESA (const sampler3D e) { __asm int_print e;}void printMESA (const samplerCube e) { __asm int_print e;}void printMESA (const sampler1DShadow e) { __asm int_print e;}void printMESA (const sampler2DShadow e) { __asm int_print e;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -