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

📄 slang_core.gc

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