From cb4c355a1ca8451a0f9f41c81530d10d8d9b53d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Branimir=20Karad=C5=BEi=C4=87?= Date: Sun, 3 Apr 2016 16:34:36 -0700 Subject: [PATCH] Cleanup. --- src/bgfx_shader.sh | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/bgfx_shader.sh b/src/bgfx_shader.sh index e434c975e..099681b04 100644 --- a/src/bgfx_shader.sh +++ b/src/bgfx_shader.sh @@ -88,6 +88,16 @@ struct BgfxSampler2D Texture2D m_texture; }; +struct BgfxISampler2D +{ + Texture2D m_texture; +}; + +struct BgfxUSampler2D +{ + Texture2D m_texture; +}; + struct BgfxSampler2DShadow { SamplerComparisonState m_sampler; @@ -194,6 +204,16 @@ vec4 bgfxTexelFetch(BgfxSampler2D _sampler, ivec2 _coord, int _lod) return _sampler.m_texture.Load(ivec3(_coord, _lod) ); } +ivec4 bgfxTexelFetch(BgfxISampler2D _sampler, ivec2 _coord, int _lod) +{ + return _sampler.m_texture.Load(ivec3(_coord, _lod) ); +} + +uvec4 bgfxTexelFetch(BgfxUSampler2D _sampler, ivec2 _coord, int _lod) +{ + return _sampler.m_texture.Load(ivec3(_coord, _lod) ); +} + vec4 bgfxTexelFetch(BgfxSampler2DMS _sampler, ivec2 _coord, int _sampleIdx) { return _sampler.m_texture.Load(_coord, _sampleIdx); @@ -208,6 +228,12 @@ vec4 bgfxTexelFetch(BgfxSampler3D _sampler, ivec3 _coord, int _lod) uniform SamplerState _name ## Sampler : register(s[_reg]); \ uniform Texture2D _name ## Texture : register(t[_reg]); \ static BgfxSampler2D _name = { _name ## Sampler, _name ## Texture } +# define ISAMPLER2D(_name, _reg) \ + uniform Texture2D _name ## Texture : register(t[_reg]); \ + static BgfxISampler2D _name = { _name ## Texture } +# define USAMPLER2D(_name, _reg) \ + uniform Texture2D _name ## Texture : register(t[_reg]); \ + static BgfxUSampler2D _name = { _name ## Texture } # define sampler2D BgfxSampler2D # define texture2D(_sampler, _coord) bgfxTexture2D(_sampler, _coord) # define texture2DLod(_sampler, _coord, _level) bgfxTexture2DLod(_sampler, _coord, _level) @@ -364,8 +390,12 @@ vec4 mod(vec4 _a, vec4 _b) { return _a - _b * floor(_a / _b); } # define SAMPLER2DSHADOW(_name, _reg) uniform sampler2DShadow _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 +ivec4 texture2D(isampler2D _sampler, vec2 _coord) { return texture(_sampler, _coord); } +uvec4 texture2D(usampler2D _sampler, vec2 _coord) { return texture(_sampler, _coord); } ivec4 texture3D(isampler3D _sampler, vec3 _coord) { return texture(_sampler, _coord); } uvec4 texture3D(usampler3D _sampler, vec3 _coord) { return texture(_sampler, _coord); } # endif // BGFX_SHADER_LANGUAGE_GLSL >= 130