summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/bgfx/src/bgfx_shader.sh
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/bgfx/src/bgfx_shader.sh')
-rw-r--r--3rdparty/bgfx/src/bgfx_shader.sh72
1 files changed, 36 insertions, 36 deletions
diff --git a/3rdparty/bgfx/src/bgfx_shader.sh b/3rdparty/bgfx/src/bgfx_shader.sh
index e8a909d4be1..f607f17d74e 100644
--- a/3rdparty/bgfx/src/bgfx_shader.sh
+++ b/3rdparty/bgfx/src/bgfx_shader.sh
@@ -98,6 +98,12 @@ struct BgfxUSampler2D
Texture2D<uvec4> m_texture;
};
+struct BgfxSampler2DArray
+{
+ SamplerState m_sampler;
+ Texture2DArray m_texture;
+};
+
struct BgfxSampler2DShadow
{
SamplerComparisonState m_sampler;
@@ -153,6 +159,16 @@ vec4 bgfxTexture2DProj(BgfxSampler2D _sampler, vec4 _coord)
return _sampler.m_texture.Sample(_sampler.m_sampler, coord);
}
+vec4 bgfxTexture2DArray(BgfxSampler2DArray _sampler, vec3 _coord)
+{
+ return _sampler.m_texture.Sample(_sampler.m_sampler, _coord);
+}
+
+vec4 bgfxTexture2DArrayLod(BgfxSampler2DArray _sampler, vec3 _coord, float _lod)
+{
+ return _sampler.m_texture.SampleLevel(_sampler.m_sampler, _coord, _lod);
+}
+
float bgfxShadow2D(BgfxSampler2DShadow _sampler, vec3 _coord)
{
return _sampler.m_texture.SampleCmpLevelZero(_sampler.m_sampler, _coord.xy, _coord.z);
@@ -238,6 +254,14 @@ vec4 bgfxTexelFetch(BgfxSampler3D _sampler, ivec3 _coord, int _lod)
# define texture2DLod(_sampler, _coord, _level) bgfxTexture2DLod(_sampler, _coord, _level)
# define texture2DProj(_sampler, _coord) bgfxTexture2DProj(_sampler, _coord)
+# define SAMPLER2DARRAY(_name, _reg) \
+ uniform SamplerState _name ## Sampler : register(s[_reg]); \
+ uniform Texture2DArray _name ## Texture : register(t[_reg]); \
+ static BgfxSampler2DArray _name = { _name ## Sampler, _name ## Texture }
+# define sampler2DArray BgfxSampler2DArray
+# define texture2DArray(_sampler, _coord) bgfxTexture2DArray(_sampler, _coord)
+# define texture2DArrayLod(_sampler, _coord, _lod) bgfxTexture2DArrayLod(_sampler, _coord, _lod)
+
# define SAMPLER2DMS(_name, _reg) \
uniform Texture2DMS<vec4> _name ## Texture : register(t[_reg]); \
static BgfxSampler2DMS _name = { _name ## Texture }
@@ -380,50 +404,26 @@ vec4 mod(vec4 _a, vec4 _b) { return _a - _b * floor(_a / _b); }
# define atan2(_x, _y) atan(_x, _y)
# define mul(_a, _b) ( (_a) * (_b) )
# define saturate(_x) clamp(_x, 0.0, 1.0)
-# define SAMPLER2D(_name, _reg) uniform sampler2D _name
-# define SAMPLER2DMS(_name, _reg) uniform sampler2DMS _name
-# define SAMPLER3D(_name, _reg) uniform sampler3D _name
-# define SAMPLERCUBE(_name, _reg) uniform samplerCube _name
+# define SAMPLER2D(_name, _reg) uniform sampler2D _name
+# define SAMPLER2DMS(_name, _reg) uniform sampler2DMS _name
+# define SAMPLER3D(_name, _reg) uniform sampler3D _name
+# define SAMPLERCUBE(_name, _reg) uniform samplerCube _name
# define SAMPLER2DSHADOW(_name, _reg) uniform sampler2DShadow _name
+# define SAMPLER2DARRAY(_name, _reg) uniform sampler2DArray _name
+# define SAMPLER2DMSARRAY(_name, _reg) uniform sampler2DMSArray _name
+# define SAMPLERCUBEARRAY(_name, _reg) uniform samplerCubeArray _name
+# define SAMPLER2DARRAYSHADOW(_name, _reg) uniform sampler2DArrayShadow _name
+
# if BGFX_SHADER_LANGUAGE_GLSL >= 130
# define ISAMPLER2D(_name, _reg) uniform isampler2D _name
# define USAMPLER2D(_name, _reg) uniform usampler2D _name
# define ISAMPLER3D(_name, _reg) uniform isampler3D _name
# define USAMPLER3D(_name, _reg) uniform usampler3D _name
-vec4 bgfxTexture2D(sampler2D _sampler, vec2 _coord)
-{
- return texture(_sampler, _coord);
-}
-
-ivec4 bgfxTexture2D(isampler2D _sampler, vec2 _coord)
-{
- return texture(_sampler, _coord);
-}
-
-uvec4 bgfxTexture2D(usampler2D _sampler, vec2 _coord)
-{
- return texture(_sampler, _coord);
-}
-
-vec4 bgfxTexture3D(sampler3D _sampler, vec3 _coord)
-{
- return texture(_sampler, _coord);
-}
-
-ivec4 bgfxTexture3D(isampler3D _sampler, vec3 _coord)
-{
- return texture(_sampler, _coord);
-}
-
-uvec4 bgfxTexture3D(usampler3D _sampler, vec3 _coord)
-{
- return texture(_sampler, _coord);
-}
-
-# define texture2D(_sampler, _coord) bgfxTexture2D(_sampler, _coord)
-# define texture3D(_sampler, _coord) bgfxTexture3D(_sampler, _coord)
+# define texture2D(_sampler, _coord) texture(_sampler, _coord)
+# define texture2DArray(_sampler, _coord) texture(_sampler, _coord)
+# define texture3D(_sampler, _coord) texture(_sampler, _coord)
# endif // BGFX_SHADER_LANGUAGE_GLSL >= 130
vec3 instMul(vec3 _vec, mat3 _mtx) { return mul(_vec, _mtx); }