CrossPlatformSettings_piece_all.glsl 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. #define min3(a, b, c) min(a, min(b, c))
  2. #define max3(a, b, c) max(a, max(b, c))
  3. #define float2 vec2
  4. #define float3 vec3
  5. #define float4 vec4
  6. #define int2 ivec2
  7. #define int3 ivec3
  8. #define int4 ivec4
  9. #define uint2 uvec2
  10. #define uint3 uvec3
  11. #define uint4 uvec4
  12. #define float2x2 mat2
  13. #define float3x3 mat3
  14. #define float4x4 mat4
  15. #define ogre_float4x3 mat3x4
  16. #define ushort uint
  17. #define ushort3 uint3
  18. #define ushort4 uint4
  19. //Short used for read operations. It's an int in GLSL & HLSL. An ushort in Metal
  20. #define rshort int
  21. #define rshort2 int2
  22. #define rint int
  23. //Short used for write operations. It's an int in GLSL. An ushort in HLSL & Metal
  24. #define wshort2 int2
  25. #define wshort3 int3
  26. #define toFloat3x3(x) mat3(x)
  27. #define buildFloat3x3(row0, row1, row2) mat3(row0, row1, row2)
  28. #define mul(x, y) ((x) * (y))
  29. #define saturate(x) clamp((x), 0.0, 1.0)
  30. #define lerp mix
  31. #define rsqrt inversesqrt
  32. #define INLINE
  33. #define NO_INTERPOLATION_PREFIX flat
  34. #define NO_INTERPOLATION_SUFFIX
  35. #define PARAMS_ARG_DECL
  36. #define PARAMS_ARG
  37. #define reversebits bitfieldReverse
  38. #define OGRE_Sample(tex, sampler, uv) texture(tex, uv)
  39. #define OGRE_SampleLevel(tex, sampler, uv, lod) textureLod(tex, uv, lod)
  40. #define OGRE_SampleArray2D(tex, sampler, uv, arrayIdx) texture(tex, vec3(uv, arrayIdx))
  41. #define OGRE_SampleArray2DLevel(tex, sampler, uv, arrayIdx, lod) textureLod(tex, vec3(uv, arrayIdx), lod)
  42. #define OGRE_SampleArrayCubeLevel(tex, sampler, uv, arrayIdx, lod) textureLod(tex, vec4(uv, arrayIdx), lod)
  43. #define OGRE_SampleGrad(tex, sampler, uv, ddx, ddy) textureGrad(tex, uv, ddx, ddy)
  44. #define OGRE_SampleArray2DGrad(tex, sampler, uv, arrayIdx, ddx, ddy) textureGrad(tex, vec3(uv, arrayIdx), ddx, ddy)
  45. #define OGRE_ddx(val) dFdx(val)
  46. #define OGRE_ddy(val) dFdy(val)
  47. #define OGRE_Load2D(tex, iuv, lod) texelFetch(tex, iuv, lod)
  48. #define OGRE_LoadArray2D(tex, iuv, arrayIdx, lod) texelFetch(tex, ivec3(iuv, arrayIdx), lod)
  49. #define OGRE_Load2DMS(tex, iuv, subsample) texelFetch(tex, iuv, subsample)
  50. #define OGRE_Load3D(tex, iuv, lod) texelFetch(tex, ivec3(iuv), lod)
  51. #define OGRE_GatherRed(tex, sampler, uv) textureGather(tex, uv, 0)
  52. #define OGRE_GatherGreen(tex, sampler, uv) textureGather(tex, uv, 1)
  53. #define OGRE_GatherBlue(tex, sampler, uv) textureGather(tex, uv, 2)
  54. #define bufferFetch1(buffer, idx) texelFetch(buffer, idx).x
  55. #define OGRE_SAMPLER_ARG_DECL(samplerName)
  56. #define OGRE_SAMPLER_ARG(samplerName)
  57. #define OGRE_Texture3D_float4 sampler3D
  58. #define OGRE_OUT_REF(declType, variableName) out declType variableName
  59. #define OGRE_INOUT_REF(declType, variableName) inout declType variableName