⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 slang_core.gc

📁 Mesa is an open-source implementation of the OpenGL specification - a system for rendering interacti
💻 GC
📖 第 1 页 / 共 4 页
字号:
//// 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 + -