From 1a09a09dd9697a4e1c7fdf8aafd3329296a2842a Mon Sep 17 00:00:00 2001 From: hiker Date: Sun, 17 May 2015 00:22:14 +1000 Subject: [PATCH] Removed now unnecessary parameter for assignSamplerNames. --- src/graphics/2dutils.cpp | 8 +-- src/graphics/IBL.cpp | 2 +- src/graphics/gpuparticles.cpp | 8 +-- src/graphics/post_processing.cpp | 62 +++++++++--------- src/graphics/render_geometry.cpp | 83 +++++++++-------------- src/graphics/shaders.cpp | 109 +++++++++++++++---------------- src/graphics/stkbillboard.cpp | 3 +- src/graphics/texture_shader.hpp | 17 +++-- 8 files changed, 133 insertions(+), 159 deletions(-) diff --git a/src/graphics/2dutils.cpp b/src/graphics/2dutils.cpp index 6bdf8aa13..3aea30873 100644 --- a/src/graphics/2dutils.cpp +++ b/src/graphics/2dutils.cpp @@ -37,7 +37,7 @@ public: loadProgram(OBJECT, GL_VERTEX_SHADER, "primitive2dlist.vert", GL_FRAGMENT_SHADER, "transparent.frag"); assignUniforms(); - assignSamplerNames(m_program, 0, "tex", ST_BILINEAR_FILTERED); + assignSamplerNames(0, "tex", ST_BILINEAR_FILTERED); } // Primitive2DList }; //Primitive2DList @@ -55,7 +55,7 @@ public: assignUniforms("center", "size", "texcenter", "texsize", "color"); - assignSamplerNames(m_program, 0, "tex", ST_BILINEAR_FILTERED); + assignSamplerNames(0, "tex", ST_BILINEAR_FILTERED); } // UniformColoredTextureRectShader }; // UniformColoredTextureRectShader @@ -71,7 +71,7 @@ public: GL_FRAGMENT_SHADER, "texturedquad.frag"); assignUniforms("center", "size", "texcenter", "texsize"); - assignSamplerNames(m_program, 0, "tex", ST_BILINEAR_FILTERED); + assignSamplerNames(0, "tex", ST_BILINEAR_FILTERED); } // TextureRectShader }; // TextureRectShader @@ -133,7 +133,7 @@ public: GL_FRAGMENT_SHADER, "colortexturedquad.frag"); assignUniforms("center", "size", "texcenter", "texsize"); - assignSamplerNames(m_program, 0, "tex", ST_BILINEAR_FILTERED); + assignSamplerNames(0, "tex", ST_BILINEAR_FILTERED); glGenVertexArrays(1, &m_vao); glBindVertexArray(m_vao); diff --git a/src/graphics/IBL.cpp b/src/graphics/IBL.cpp index 7286e87ec..d97d59b23 100644 --- a/src/graphics/IBL.cpp +++ b/src/graphics/IBL.cpp @@ -37,7 +37,7 @@ public: GL_FRAGMENT_SHADER, "importance_sampling_specular.frag"); assignUniforms("PermutationMatrix", "ViewportSize"); m_tu_samples = 1; - assignSamplerNames(m_program, 0, "tex", ST_TRILINEAR_CUBEMAP); + assignSamplerNames(0, "tex", ST_TRILINEAR_CUBEMAP); assignTextureUnit(m_tu_samples, "samples"); } diff --git a/src/graphics/gpuparticles.cpp b/src/graphics/gpuparticles.cpp index 3c8fa5a8c..d668814f3 100644 --- a/src/graphics/gpuparticles.cpp +++ b/src/graphics/gpuparticles.cpp @@ -66,8 +66,8 @@ public: GL_FRAGMENT_SHADER, "particle.frag"); assignUniforms("color_from", "color_to"); - assignSamplerNames(m_program, 0, "tex", ST_TRILINEAR_ANISOTROPIC_FILTERED, - 1, "dtex", ST_NEAREST_FILTERED); + assignSamplerNames(0, "tex", ST_TRILINEAR_ANISOTROPIC_FILTERED, + 1, "dtex", ST_NEAREST_FILTERED); } // SimpleParticleRender }; // SimpleParticleRender @@ -84,8 +84,8 @@ public: GL_FRAGMENT_SHADER, "utils/getPosFromUVDepth.frag", GL_FRAGMENT_SHADER, "particle.frag"); assignUniforms(); - assignSamplerNames(m_program, 0, "tex", ST_TRILINEAR_ANISOTROPIC_FILTERED, - 1, "dtex", ST_NEAREST_FILTERED); + assignSamplerNames(0, "tex", ST_TRILINEAR_ANISOTROPIC_FILTERED, + 1, "dtex", ST_NEAREST_FILTERED); } }; // FlipParticleShader diff --git a/src/graphics/post_processing.cpp b/src/graphics/post_processing.cpp index c20b50643..833ea6ed4 100644 --- a/src/graphics/post_processing.cpp +++ b/src/graphics/post_processing.cpp @@ -53,7 +53,7 @@ public: GL_FRAGMENT_SHADER, "gaussian3h.frag"); assignUniforms("pixel"); - assignSamplerNames(m_program, 0, "tex", ST_BILINEAR_CLAMPED_FILTERED); + assignSamplerNames(0, "tex", ST_BILINEAR_CLAMPED_FILTERED); } // Gaussian3HBlurShader }; // Gaussian3HBlurShader @@ -69,7 +69,7 @@ public: loadProgram(OBJECT, GL_COMPUTE_SHADER, "blurshadowV.comp"); m_dest_tu = 1; assignUniforms("pixel", "weights"); - assignSamplerNames(m_program, 0, "source", ST_NEARED_CLAMPED_FILTERED); + assignSamplerNames(0, "source", ST_NEARED_CLAMPED_FILTERED); assignTextureUnit(m_dest_tu, "dest"); } // ComputeShadowBlurVShader @@ -86,7 +86,7 @@ public: GL_FRAGMENT_SHADER, "gaussian6v.frag"); assignUniforms("pixel", "sigma"); - assignSamplerNames(m_program, 0, "tex", ST_BILINEAR_CLAMPED_FILTERED); + assignSamplerNames(0, "tex", ST_BILINEAR_CLAMPED_FILTERED); } // Gaussian6VBlurShader }; // Gaussian6VBlurShader @@ -101,7 +101,7 @@ public: GL_FRAGMENT_SHADER, "gaussian3v.frag"); assignUniforms("pixel"); - assignSamplerNames(m_program, 0, "tex", ST_BILINEAR_CLAMPED_FILTERED); + assignSamplerNames(0, "tex", ST_BILINEAR_CLAMPED_FILTERED); } // Gaussian3VBlurShader }; // Gaussian3VBlurShader @@ -117,8 +117,7 @@ public: loadProgram(OBJECT, GL_COMPUTE_SHADER, "gaussian6v.comp"); m_dest_tu = 1; assignUniforms("pixel", "weights"); - assignSamplerNames(m_program, 0, "source", - ST_BILINEAR_CLAMPED_FILTERED); + assignSamplerNames(0, "source", ST_BILINEAR_CLAMPED_FILTERED); assignTextureUnit(m_dest_tu, "dest"); } // ComputeGaussian6VBlurShader }; // ComputeGaussian6VBlurShader @@ -135,8 +134,7 @@ public: loadProgram(OBJECT, GL_COMPUTE_SHADER, "gaussian6h.comp"); m_dest_tu = 1; assignUniforms("pixel", "weights"); - assignSamplerNames(m_program, 0, "source", - ST_BILINEAR_CLAMPED_FILTERED); + assignSamplerNames(0, "source", ST_BILINEAR_CLAMPED_FILTERED); assignTextureUnit(m_dest_tu, "dest"); } // ComputeGaussian6HBlurShader }; // ComputeGaussian6HBlurShader @@ -153,7 +151,7 @@ public: loadProgram(OBJECT, GL_COMPUTE_SHADER, "blurshadowH.comp"); m_dest_tu = 1; assignUniforms("pixel", "weights"); - assignSamplerNames(m_program, 0, "source", ST_NEARED_CLAMPED_FILTERED); + assignSamplerNames(0, "source", ST_NEARED_CLAMPED_FILTERED); assignTextureUnit(m_dest_tu, "dest"); } // ComputeShadowBlurHShader }; // ComputeShadowBlurHShader @@ -169,7 +167,7 @@ public: GL_FRAGMENT_SHADER, "gaussian6h.frag"); assignUniforms("pixel", "sigma"); - assignSamplerNames(m_program, 0, "tex", ST_BILINEAR_CLAMPED_FILTERED); + assignSamplerNames(0, "tex", ST_BILINEAR_CLAMPED_FILTERED); } // Gaussian6HBlurShader }; // Gaussian6HBlurShader @@ -183,8 +181,8 @@ public: loadProgram(OBJECT, GL_VERTEX_SHADER, "screenquad.vert", GL_FRAGMENT_SHADER, "bilateralH.frag"); assignUniforms("pixel"); - assignSamplerNames(m_program,0, "tex", ST_BILINEAR_CLAMPED_FILTERED, - 1, "depth", ST_BILINEAR_CLAMPED_FILTERED); + assignSamplerNames(0, "tex", ST_BILINEAR_CLAMPED_FILTERED, + 1, "depth", ST_BILINEAR_CLAMPED_FILTERED); } // Gaussian17TapHShader }; // Gaussian17TapHShader @@ -199,8 +197,8 @@ public: loadProgram(OBJECT, GL_COMPUTE_SHADER, "bilateralH.comp"); m_dest_tu = 2; assignUniforms("pixel"); - assignSamplerNames(m_program, 0, "source", ST_NEARED_CLAMPED_FILTERED, - 1, "depth", ST_NEARED_CLAMPED_FILTERED); + assignSamplerNames(0, "source", ST_NEARED_CLAMPED_FILTERED, + 1, "depth", ST_NEARED_CLAMPED_FILTERED); assignTextureUnit(m_dest_tu, "dest"); } // ComputeGaussian17TapHShader }; // ComputeGaussian17TapHShader @@ -217,8 +215,8 @@ public: GL_FRAGMENT_SHADER, "bilateralV.frag"); assignUniforms("pixel"); - assignSamplerNames(m_program,0, "tex", ST_BILINEAR_CLAMPED_FILTERED, - 1, "depth", ST_BILINEAR_CLAMPED_FILTERED); + assignSamplerNames(0, "tex", ST_BILINEAR_CLAMPED_FILTERED, + 1, "depth", ST_BILINEAR_CLAMPED_FILTERED); } // Gaussian17TapVShader }; // Gaussian17TapVShader @@ -234,8 +232,8 @@ public: loadProgram(OBJECT, GL_COMPUTE_SHADER, "bilateralV.comp"); m_dest_tu = 2; assignUniforms("pixel"); - assignSamplerNames(m_program, 0, "source", ST_NEARED_CLAMPED_FILTERED, - 1, "depth", ST_NEARED_CLAMPED_FILTERED); + assignSamplerNames(0, "source", ST_NEARED_CLAMPED_FILTERED, + 1, "depth", ST_NEARED_CLAMPED_FILTERED); assignTextureUnit(m_dest_tu, "dest"); } // ComputeGaussian17TapVShader }; // ComputeGaussian17TapVShader @@ -251,7 +249,7 @@ public: GL_FRAGMENT_SHADER, "utils/getRGBfromCIEXxy.frag", GL_FRAGMENT_SHADER, "bloom.frag"); assignUniforms(); - assignSamplerNames(m_program, 0, "tex", ST_NEAREST_FILTERED); + assignSamplerNames(0, "tex", ST_NEAREST_FILTERED); } // BloomShader }; // BloomShader @@ -264,9 +262,9 @@ public: loadProgram(OBJECT, GL_VERTEX_SHADER, "screenquad.vert", GL_FRAGMENT_SHADER, "bloomblend.frag"); assignUniforms(); - assignSamplerNames(m_program, 0, "tex_128", ST_BILINEAR_FILTERED, - 1, "tex_256", ST_BILINEAR_FILTERED, - 2, "tex_512", ST_BILINEAR_FILTERED); + assignSamplerNames(0, "tex_128", ST_BILINEAR_FILTERED, + 1, "tex_256", ST_BILINEAR_FILTERED, + 2, "tex_512", ST_BILINEAR_FILTERED); } // BloomBlendShader }; // BloomBlendShader @@ -280,9 +278,9 @@ public: GL_FRAGMENT_SHADER, "lensblend.frag"); assignUniforms(); - assignSamplerNames(m_program, 0, "tex_128", ST_BILINEAR_FILTERED, - 1, "tex_256", ST_BILINEAR_FILTERED, - 2, "tex_512", ST_BILINEAR_FILTERED); + assignSamplerNames(0, "tex_128", ST_BILINEAR_FILTERED, + 1, "tex_256", ST_BILINEAR_FILTERED, + 2, "tex_512", ST_BILINEAR_FILTERED); } // LensBlendShader }; // LensBlendShader @@ -298,7 +296,7 @@ public: GL_FRAGMENT_SHADER, "utils/getCIEXYZ.frag", GL_FRAGMENT_SHADER, "tonemap.frag"); assignUniforms("vignette_weight"); - assignSamplerNames(m_program, 0, "text", ST_NEAREST_FILTERED); + assignSamplerNames(0, "text", ST_NEAREST_FILTERED); } // ToneMapShader }; // ToneMapShader @@ -312,8 +310,8 @@ public: GL_FRAGMENT_SHADER, "dof.frag"); assignUniforms(); - assignSamplerNames(m_program, 0, "tex", ST_BILINEAR_FILTERED, - 1, "dtex", ST_NEAREST_FILTERED); + assignSamplerNames(0, "tex", ST_BILINEAR_FILTERED, + 1, "dtex", ST_NEAREST_FILTERED); } // DepthOfFieldShader }; // DepthOfFieldShader @@ -330,9 +328,9 @@ public: GL_FRAGMENT_SHADER, "utils/SpecularIBL.frag", GL_FRAGMENT_SHADER, "IBL.frag"); assignUniforms(); - assignSamplerNames(m_program, 0, "ntex", ST_NEAREST_FILTERED, - 1, "dtex", ST_NEAREST_FILTERED, - 2, "probe", ST_TRILINEAR_CUBEMAP); + assignSamplerNames(0, "ntex", ST_NEAREST_FILTERED, + 1, "dtex", ST_NEAREST_FILTERED, + 2, "probe", ST_TRILINEAR_CUBEMAP); } // IBLShader }; // IBLShader @@ -349,7 +347,7 @@ public: GL_FRAGMENT_SHADER, "utils/SpecularIBL.frag", GL_FRAGMENT_SHADER, "degraded_ibl.frag"); assignUniforms(); - assignSamplerNames(m_program, 0, "ntex", ST_NEAREST_FILTERED); + assignSamplerNames(0, "ntex", ST_NEAREST_FILTERED); } // DegradedIBLShader }; // DegradedIBLShader diff --git a/src/graphics/render_geometry.cpp b/src/graphics/render_geometry.cpp index 41e5f1f51..b0873d0ec 100644 --- a/src/graphics/render_geometry.cpp +++ b/src/graphics/render_geometry.cpp @@ -88,8 +88,7 @@ public: GL_FRAGMENT_SHADER, "instanced_object_pass1.frag"); assignUniforms(); - assignSamplerNames(m_program, 0, "glosstex", - ST_TRILINEAR_ANISOTROPIC_FILTERED); + assignSamplerNames(0, "glosstex", ST_TRILINEAR_ANISOTROPIC_FILTERED); } // InstancedObjectPass1Shader }; // class InstancedObjectPass1Shader @@ -105,8 +104,7 @@ public: GL_FRAGMENT_SHADER, "instanced_objectref_pass1.frag"); assignUniforms(); - assignSamplerNames(m_program, - 0, "tex", ST_TRILINEAR_ANISOTROPIC_FILTERED, + assignSamplerNames(0, "tex", ST_TRILINEAR_ANISOTROPIC_FILTERED, 1, "glosstex", ST_TRILINEAR_ANISOTROPIC_FILTERED); } @@ -123,8 +121,7 @@ public: GL_FRAGMENT_SHADER, "utils/getLightFactor.frag", GL_FRAGMENT_SHADER, "objectref_pass2.frag"); assignUniforms("ModelMatrix", "TextureMatrix"); - assignSamplerNames(m_program, - 0, "DiffuseMap", ST_NEAREST_FILTERED, + assignSamplerNames(0, "DiffuseMap", ST_NEAREST_FILTERED, 1, "SpecularMap", ST_NEAREST_FILTERED, 2, "SSAO", ST_BILINEAR_FILTERED, 3, "Albedo", ST_TRILINEAR_ANISOTROPIC_FILTERED, @@ -143,7 +140,7 @@ public: GL_FRAGMENT_SHADER, "utils/getLightFactor.frag", GL_FRAGMENT_SHADER, "instanced_object_pass2.frag"); assignUniforms(); - assignSamplerNames(m_program, 0, "DiffuseMap", ST_NEAREST_FILTERED, + assignSamplerNames(0, "DiffuseMap", ST_NEAREST_FILTERED, 1, "SpecularMap", ST_NEAREST_FILTERED, 2, "SSAO", ST_BILINEAR_FILTERED, 3, "Albedo", ST_TRILINEAR_ANISOTROPIC_FILTERED, @@ -162,8 +159,7 @@ public: GL_FRAGMENT_SHADER, "utils/getLightFactor.frag", GL_FRAGMENT_SHADER, "instanced_objectref_pass2.frag"); assignUniforms(); - assignSamplerNames(m_program, - 0, "DiffuseMap", ST_NEAREST_FILTERED, + assignSamplerNames(0, "DiffuseMap", ST_NEAREST_FILTERED, 1, "SpecularMap", ST_NEAREST_FILTERED, 2, "SSAO", ST_BILINEAR_FILTERED, 3, "Albedo", ST_TRILINEAR_ANISOTROPIC_FILTERED, @@ -233,8 +229,7 @@ public: GL_FRAGMENT_SHADER, "rsm.frag"); assignUniforms("RSMMatrix", "ModelMatrix", "TextureMatrix"); - assignSamplerNames(m_program, 0, "tex", - ST_TRILINEAR_ANISOTROPIC_FILTERED); + assignSamplerNames(0, "tex", ST_TRILINEAR_ANISOTROPIC_FILTERED); } // CRSMShader }; // CRSMShader @@ -250,8 +245,7 @@ public: GL_FRAGMENT_SHADER, "splatting_rsm.frag"); assignUniforms("RSMMatrix", "ModelMatrix"); - assignSamplerNames(m_program, - 0, "tex_layout", ST_TRILINEAR_ANISOTROPIC_FILTERED, + assignSamplerNames(0, "tex_layout", ST_TRILINEAR_ANISOTROPIC_FILTERED, 1, "tex_detail0", ST_TRILINEAR_ANISOTROPIC_FILTERED, 2, "tex_detail1", ST_TRILINEAR_ANISOTROPIC_FILTERED, 3, "tex_detail2", ST_TRILINEAR_ANISOTROPIC_FILTERED, @@ -271,8 +265,7 @@ public: GL_FRAGMENT_SHADER, "instanced_rsm.frag"); assignUniforms("RSMMatrix"); - assignSamplerNames(m_program, 0, "tex", - ST_TRILINEAR_ANISOTROPIC_FILTERED); + assignSamplerNames(0, "tex", ST_TRILINEAR_ANISOTROPIC_FILTERED); } // CInstancedRSMShader }; // CInstancedRSMShader @@ -288,8 +281,7 @@ public: GL_FRAGMENT_SHADER, "utils/getPosFromUVDepth.frag", GL_FRAGMENT_SHADER, "objectpass_spheremap.frag"); assignUniforms("ModelMatrix", "InverseModelMatrix"); - assignSamplerNames(m_program, - 0, "DiffuseMap", ST_NEAREST_FILTERED, + assignSamplerNames(0, "DiffuseMap", ST_NEAREST_FILTERED, 1, "SpecularMap", ST_NEAREST_FILTERED, 2, "SSAO", ST_BILINEAR_FILTERED, 3, "tex", ST_TRILINEAR_ANISOTROPIC_FILTERED); @@ -308,8 +300,7 @@ public: GL_FRAGMENT_SHADER, "utils/getPosFromUVDepth.frag", GL_FRAGMENT_SHADER, "instanced_objectpass_spheremap.frag"); assignUniforms(); - assignSamplerNames(m_program, - 0, "DiffuseMap", ST_NEAREST_FILTERED, + assignSamplerNames(0, "DiffuseMap", ST_NEAREST_FILTERED, 1, "SpecularMap", ST_NEAREST_FILTERED, 2, "SSAO", ST_BILINEAR_FILTERED, 3, "tex", ST_TRILINEAR_ANISOTROPIC_FILTERED); @@ -327,15 +318,14 @@ public: GL_FRAGMENT_SHADER, "splatting.frag"); assignUniforms("ModelMatrix"); - assignSamplerNames(m_program, - 0, "DiffuseMap", ST_NEAREST_FILTERED, - 1, "SpecularMap", ST_NEAREST_FILTERED, - 2, "SSAO", ST_BILINEAR_FILTERED, - 3, "tex_layout", ST_TRILINEAR_ANISOTROPIC_FILTERED, - 4, "tex_detail0", ST_TRILINEAR_ANISOTROPIC_FILTERED, - 5, "tex_detail1", ST_TRILINEAR_ANISOTROPIC_FILTERED, - 6, "tex_detail2", ST_TRILINEAR_ANISOTROPIC_FILTERED, - 7, "tex_detail3", ST_TRILINEAR_ANISOTROPIC_FILTERED); + assignSamplerNames(0, "DiffuseMap", ST_NEAREST_FILTERED, + 1, "SpecularMap", ST_NEAREST_FILTERED, + 2, "SSAO", ST_BILINEAR_FILTERED, + 3, "tex_layout", ST_TRILINEAR_ANISOTROPIC_FILTERED, + 4, "tex_detail0", ST_TRILINEAR_ANISOTROPIC_FILTERED, + 5, "tex_detail1", ST_TRILINEAR_ANISOTROPIC_FILTERED, + 6, "tex_detail2", ST_TRILINEAR_ANISOTROPIC_FILTERED, + 7, "tex_detail3", ST_TRILINEAR_ANISOTROPIC_FILTERED); } // SplattingShader }; // SplattingShader @@ -350,8 +340,7 @@ public: GL_FRAGMENT_SHADER, "utils/encode_normal.frag", GL_FRAGMENT_SHADER, "objectref_pass1.frag"); assignUniforms("ModelMatrix", "InverseModelMatrix", "TextureMatrix"); - assignSamplerNames(m_program, - 0, "tex", ST_TRILINEAR_ANISOTROPIC_FILTERED, + assignSamplerNames(0, "tex", ST_TRILINEAR_ANISOTROPIC_FILTERED, 1, "glosstex", ST_TRILINEAR_ANISOTROPIC_FILTERED); } // ObjectRefPass1Shader }; // ObjectRefPass1Shader @@ -368,8 +357,7 @@ public: GL_FRAGMENT_SHADER, "utils/encode_normal.frag", GL_FRAGMENT_SHADER, "normalmap.frag"); assignUniforms("ModelMatrix", "InverseModelMatrix"); - assignSamplerNames(m_program, - 1, "normalMap", ST_TRILINEAR_ANISOTROPIC_FILTERED, + assignSamplerNames(1, "normalMap", ST_TRILINEAR_ANISOTROPIC_FILTERED, 0, "DiffuseForAlpha", ST_TRILINEAR_ANISOTROPIC_FILTERED); } // NormalMapShader @@ -386,8 +374,7 @@ public: GL_FRAGMENT_SHADER, "utils/encode_normal.frag", GL_FRAGMENT_SHADER, "instanced_normalmap.frag"); assignUniforms(); - assignSamplerNames(m_program, - 0, "normalMap", ST_TRILINEAR_ANISOTROPIC_FILTERED, + assignSamplerNames(0, "normalMap", ST_TRILINEAR_ANISOTROPIC_FILTERED, 1, "glossMap", ST_TRILINEAR_ANISOTROPIC_FILTERED); } // InstancedNormalMapShader }; // InstancedNormalMapShader @@ -402,8 +389,7 @@ public: loadProgram(OBJECT, GL_VERTEX_SHADER, "object_pass.vert", GL_FRAGMENT_SHADER, "object_unlit.frag"); assignUniforms("ModelMatrix", "TextureMatrix"); - assignSamplerNames(m_program, - 0, "DiffuseMap", ST_NEAREST_FILTERED, + assignSamplerNames(0, "DiffuseMap", ST_NEAREST_FILTERED, 1, "SpecularMap", ST_NEAREST_FILTERED, 2, "SSAO", ST_BILINEAR_FILTERED, 3, "tex", ST_TRILINEAR_ANISOTROPIC_FILTERED); @@ -420,8 +406,7 @@ public: GL_VERTEX_SHADER, "instanced_object_pass.vert", GL_FRAGMENT_SHADER, "instanced_object_unlit.frag"); assignUniforms(); - assignSamplerNames(m_program, - 0, "DiffuseMap", ST_NEAREST_FILTERED, + assignSamplerNames(0, "DiffuseMap", ST_NEAREST_FILTERED, 1, "SpecularMap", ST_NEAREST_FILTERED, 2, "SSAO", ST_BILINEAR_FILTERED, 3, "tex", ST_TRILINEAR_ANISOTROPIC_FILTERED); @@ -558,8 +543,7 @@ public: GL_FRAGMENT_SHADER, "utils/encode_normal.frag", GL_FRAGMENT_SHADER, "objectref_pass1.frag"); assignUniforms("ModelMatrix", "InverseModelMatrix", "windDir"); - assignSamplerNames(m_program, - 0, "tex", ST_TRILINEAR_ANISOTROPIC_FILTERED, + assignSamplerNames(0, "tex", ST_TRILINEAR_ANISOTROPIC_FILTERED, 1, "glosstex", ST_TRILINEAR_ANISOTROPIC_FILTERED); } // GrassPass1Shader @@ -577,8 +561,7 @@ public: GL_FRAGMENT_SHADER, "utils/encode_normal.frag", GL_FRAGMENT_SHADER, "instanced_objectref_pass1.frag"); assignUniforms("windDir"); - assignSamplerNames(m_program, - 0, "tex", ST_TRILINEAR_ANISOTROPIC_FILTERED, + assignSamplerNames(0, "tex", ST_TRILINEAR_ANISOTROPIC_FILTERED, 1, "glosstex", ST_TRILINEAR_ANISOTROPIC_FILTERED); } // InstancedGrassPass1Shader }; // InstancedGrassPass1Shader @@ -605,8 +588,7 @@ public: GL_FRAGMENT_SHADER, "instanced_shadowref.frag"); } assignUniforms("layer", "ModelMatrix", "windDir"); - assignSamplerNames(m_program, 0, "tex", - ST_TRILINEAR_ANISOTROPIC_FILTERED); + assignSamplerNames(0, "tex", ST_TRILINEAR_ANISOTROPIC_FILTERED); } // GrassShadowShader }; // GrassShadowShader @@ -634,8 +616,7 @@ public: GL_FRAGMENT_SHADER, "instanced_shadowref.frag"); } - assignSamplerNames(m_program, 0, "tex", - ST_TRILINEAR_ANISOTROPIC_FILTERED); + assignSamplerNames(0, "tex", ST_TRILINEAR_ANISOTROPIC_FILTERED); assignUniforms("layer", "windDir"); } // InstancedGrassShadowShader }; // InstancedGrassShadowShader @@ -652,8 +633,7 @@ public: GL_FRAGMENT_SHADER, "utils/getLightFactor.frag", GL_FRAGMENT_SHADER, "grass_pass2.frag"); assignUniforms("ModelMatrix", "windDir"); - assignSamplerNames(m_program, - 0, "DiffuseMap", ST_NEAREST_FILTERED, + assignSamplerNames(0, "DiffuseMap", ST_NEAREST_FILTERED, 1, "SpecularMap", ST_NEAREST_FILTERED, 2, "SSAO", ST_BILINEAR_FILTERED, 3, "Albedo", ST_TRILINEAR_ANISOTROPIC_FILTERED, @@ -673,8 +653,7 @@ public: GL_FRAGMENT_SHADER, "utils/getLightFactor.frag", GL_FRAGMENT_SHADER, "instanced_grass_pass2.frag"); assignUniforms("windDir", "SunDir"); - assignSamplerNames(m_program, - 0, "DiffuseMap", ST_NEAREST_FILTERED, + assignSamplerNames(0, "DiffuseMap", ST_NEAREST_FILTERED, 1, "SpecularMap", ST_NEAREST_FILTERED, 2, "SSAO", ST_BILINEAR_FILTERED, 3, "dtex", ST_NEAREST_FILTERED, @@ -694,7 +673,7 @@ public: GL_FRAGMENT_SHADER, "utils/getLightFactor.frag", GL_FRAGMENT_SHADER, "detailedobject_pass2.frag"); assignUniforms("ModelMatrix"); - assignSamplerNames(m_program, 0, "DiffuseMap", ST_NEAREST_FILTERED, + assignSamplerNames(0, "DiffuseMap", ST_NEAREST_FILTERED, 1, "SpecularMap", ST_NEAREST_FILTERED, 2, "SSAO", ST_BILINEAR_FILTERED, 3, "Albedo", ST_TRILINEAR_ANISOTROPIC_FILTERED, @@ -714,7 +693,7 @@ public: GL_FRAGMENT_SHADER, "utils/getLightFactor.frag", GL_FRAGMENT_SHADER, "instanced_detailedobject_pass2.frag"); assignUniforms(); - assignSamplerNames(m_program, 0, "DiffuseMap", ST_NEAREST_FILTERED, + assignSamplerNames(0, "DiffuseMap", ST_NEAREST_FILTERED, 1, "SpecularMap", ST_NEAREST_FILTERED, 2, "SSAO", ST_BILINEAR_FILTERED, 3, "Albedo", ST_TRILINEAR_ANISOTROPIC_FILTERED, diff --git a/src/graphics/shaders.cpp b/src/graphics/shaders.cpp index f87524c60..f48d93885 100644 --- a/src/graphics/shaders.cpp +++ b/src/graphics/shaders.cpp @@ -401,7 +401,7 @@ namespace MeshShader GL_FRAGMENT_SHADER, "utils/encode_normal.frag", GL_FRAGMENT_SHADER, "object_pass1.frag"); assignUniforms("ModelMatrix", "InverseModelMatrix"); - assignSamplerNames(m_program, 0, "tex", ST_TRILINEAR_ANISOTROPIC_FILTERED); + assignSamplerNames(0, "tex", ST_TRILINEAR_ANISOTROPIC_FILTERED); } @@ -413,11 +413,11 @@ namespace MeshShader GL_FRAGMENT_SHADER, "utils/getLightFactor.frag", GL_FRAGMENT_SHADER, "object_pass2.frag"); assignUniforms("ModelMatrix", "TextureMatrix"); - assignSamplerNames(m_program, 0, "DiffuseMap", ST_NEAREST_FILTERED, - 1, "SpecularMap", ST_NEAREST_FILTERED, - 2, "SSAO", ST_BILINEAR_FILTERED, - 3, "Albedo", ST_TRILINEAR_ANISOTROPIC_FILTERED, - 4, "SpecMap", ST_TRILINEAR_ANISOTROPIC_FILTERED); + assignSamplerNames(0, "DiffuseMap", ST_NEAREST_FILTERED, + 1, "SpecularMap", ST_NEAREST_FILTERED, + 2, "SSAO", ST_BILINEAR_FILTERED, + 3, "Albedo", ST_TRILINEAR_ANISOTROPIC_FILTERED, + 4, "SpecMap", ST_TRILINEAR_ANISOTROPIC_FILTERED); } @@ -428,7 +428,7 @@ namespace MeshShader GL_VERTEX_SHADER, "object_pass.vert", GL_FRAGMENT_SHADER, "transparent.frag"); assignUniforms("ModelMatrix", "TextureMatrix"); - assignSamplerNames(m_program, 0, "tex", ST_TRILINEAR_ANISOTROPIC_FILTERED); + assignSamplerNames(0, "tex", ST_TRILINEAR_ANISOTROPIC_FILTERED); } TransparentFogShader::TransparentFogShader() @@ -438,7 +438,7 @@ namespace MeshShader GL_FRAGMENT_SHADER, "transparentfog.frag"); assignUniforms("ModelMatrix", "TextureMatrix", "fogmax", "startH", "endH", "start", "end", "col"); - assignSamplerNames(m_program, 0, "tex", ST_TRILINEAR_ANISOTROPIC_FILTERED); + assignSamplerNames(0, "tex", ST_TRILINEAR_ANISOTROPIC_FILTERED); } @@ -480,7 +480,7 @@ namespace MeshShader GL_FRAGMENT_SHADER, "shadowref.frag"); } assignUniforms("layer", "ModelMatrix"); - assignSamplerNames(m_program, 0, "tex", ST_TRILINEAR_ANISOTROPIC_FILTERED); + assignSamplerNames(0, "tex", ST_TRILINEAR_ANISOTROPIC_FILTERED); } InstancedRefShadowShader::InstancedRefShadowShader() @@ -504,7 +504,7 @@ namespace MeshShader GL_FRAGMENT_SHADER, "instanced_shadowref.frag"); } assignUniforms("layer"); - assignSamplerNames(m_program, 0, "tex", ST_TRILINEAR_ANISOTROPIC_FILTERED); + assignSamplerNames(0, "tex", ST_TRILINEAR_ANISOTROPIC_FILTERED); } @@ -525,11 +525,10 @@ namespace MeshShader GL_FRAGMENT_SHADER, "displace.frag"); assignUniforms("ModelMatrix", "dir", "dir2"); - assignSamplerNames(m_program, - 0, "displacement_tex", ST_BILINEAR_FILTERED, - 1, "color_tex", ST_BILINEAR_FILTERED, - 2, "mask_tex", ST_BILINEAR_FILTERED, - 3, "tex", ST_TRILINEAR_ANISOTROPIC_FILTERED); + assignSamplerNames(0, "displacement_tex", ST_BILINEAR_FILTERED, + 1, "color_tex", ST_BILINEAR_FILTERED, + 2, "mask_tex", ST_BILINEAR_FILTERED, + 3, "tex", ST_TRILINEAR_ANISOTROPIC_FILTERED); } SkyboxShader::SkyboxShader() @@ -538,7 +537,7 @@ namespace MeshShader GL_VERTEX_SHADER, "sky.vert", GL_FRAGMENT_SHADER, "sky.frag"); assignUniforms(); - assignSamplerNames(m_program, 0, "tex", ST_TRILINEAR_CUBEMAP); + assignSamplerNames(0, "tex", ST_TRILINEAR_CUBEMAP); glGenVertexArrays(1, &vao); glBindVertexArray(vao); @@ -590,8 +589,8 @@ namespace LightShader GL_FRAGMENT_SHADER, "pointlight.frag"); assignUniforms(); - assignSamplerNames(m_program, 0, "ntex", ST_NEAREST_FILTERED, - 1, "dtex", ST_NEAREST_FILTERED); + assignSamplerNames(0, "ntex", ST_NEAREST_FILTERED, + 1, "dtex", ST_NEAREST_FILTERED); glGenVertexArrays(1, &vao); glBindVertexArray(vao); @@ -627,7 +626,7 @@ namespace LightShader GL_FRAGMENT_SHADER, "pointlightscatter.frag"); assignUniforms("density", "fogcol"); - assignSamplerNames(m_program, 0, "dtex", ST_NEAREST_FILTERED); + assignSamplerNames(0, "dtex", ST_NEAREST_FILTERED); glGenVertexArrays(1, &vao); glBindVertexArray(vao); @@ -687,8 +686,8 @@ namespace FullScreenShader GL_FRAGMENT_SHADER, "utils/SunMRP.frag", GL_FRAGMENT_SHADER, "sunlight.frag"); - assignSamplerNames(m_program, 0, "ntex", ST_NEAREST_FILTERED, - 1, "dtex", ST_NEAREST_FILTERED); + assignSamplerNames(0, "ntex", ST_NEAREST_FILTERED, + 1, "dtex", ST_NEAREST_FILTERED); assignUniforms("direction", "col"); } @@ -705,9 +704,9 @@ namespace FullScreenShader GL_FRAGMENT_SHADER, "sunlightshadow.frag"); // Use 8 to circumvent a catalyst bug when binding sampler - assignSamplerNames(m_program, 0, "ntex", ST_NEAREST_FILTERED, - 1, "dtex", ST_NEAREST_FILTERED, - 8, "shadowtex", ST_SHADOW_SAMPLER); + assignSamplerNames(0, "ntex", ST_NEAREST_FILTERED, + 1, "dtex", ST_NEAREST_FILTERED, + 8, "shadowtex", ST_SHADOW_SAMPLER); assignUniforms("split0", "split1", "split2", "splitmax", "shadow_res"); } @@ -723,9 +722,9 @@ namespace FullScreenShader GL_FRAGMENT_SHADER, "sunlightshadowesm.frag"); // Use 8 to circumvent a catalyst bug when binding sampler - assignSamplerNames(m_program, 0, "ntex", ST_NEAREST_FILTERED, - 1, "dtex", ST_NEAREST_FILTERED, - 8, "shadowtex", ST_TRILINEAR_CLAMPED_ARRAY2D); + assignSamplerNames(0, "ntex", ST_NEAREST_FILTERED, + 1, "dtex", ST_NEAREST_FILTERED, + 8, "shadowtex", ST_TRILINEAR_CLAMPED_ARRAY2D); assignUniforms("split0", "split1", "split2", "splitmax"); } @@ -747,9 +746,9 @@ namespace FullScreenShader } assignUniforms("RSMMatrix", "RHMatrix", "extents", "suncol"); - assignSamplerNames(m_program, 0, "ctex", ST_BILINEAR_FILTERED, - 1, "ntex", ST_BILINEAR_FILTERED, - 2, "dtex", ST_BILINEAR_FILTERED); + assignSamplerNames(0, "ctex", ST_BILINEAR_FILTERED, + 1, "ntex", ST_BILINEAR_FILTERED, + 2, "dtex", ST_BILINEAR_FILTERED); } NVWorkaroundRadianceHintsConstructionShader::NVWorkaroundRadianceHintsConstructionShader() @@ -761,9 +760,9 @@ namespace FullScreenShader assignUniforms("RSMMatrix", "RHMatrix", "extents", "slice", "suncol"); - assignSamplerNames(m_program, 0, "ctex", ST_BILINEAR_FILTERED, - 1, "ntex", ST_BILINEAR_FILTERED, - 2, "dtex", ST_BILINEAR_FILTERED); + assignSamplerNames(0, "ctex", ST_BILINEAR_FILTERED, + 1, "ntex", ST_BILINEAR_FILTERED, + 2, "dtex", ST_BILINEAR_FILTERED); } RHDebug::RHDebug() @@ -787,11 +786,11 @@ namespace FullScreenShader GL_FRAGMENT_SHADER, "gi.frag"); assignUniforms("RHMatrix", "InvRHMatrix", "extents"); - assignSamplerNames(m_program, 0, "ntex", ST_NEAREST_FILTERED, - 1, "dtex", ST_NEAREST_FILTERED, - 2, "SHR", ST_VOLUME_LINEAR_FILTERED, - 3, "SHG", ST_VOLUME_LINEAR_FILTERED, - 4, "SHB", ST_VOLUME_LINEAR_FILTERED); + assignSamplerNames(0, "ntex", ST_NEAREST_FILTERED, + 1, "dtex", ST_NEAREST_FILTERED, + 2, "SHR", ST_VOLUME_LINEAR_FILTERED, + 3, "SHG", ST_VOLUME_LINEAR_FILTERED, + 4, "SHB", ST_VOLUME_LINEAR_FILTERED); } HorizontalBlurShader::HorizontalBlurShader() @@ -801,7 +800,7 @@ namespace FullScreenShader GL_FRAGMENT_SHADER, "gaussian6h.frag"); assignUniforms("pixel"); - assignSamplerNames(m_program, 0, "tex", ST_BILINEAR_CLAMPED_FILTERED); + assignSamplerNames(0, "tex", ST_BILINEAR_CLAMPED_FILTERED); } PassThroughShader::PassThroughShader() @@ -811,7 +810,7 @@ namespace FullScreenShader GL_FRAGMENT_SHADER, "passthrough.frag"); assignUniforms("width", "height"); - assignSamplerNames(m_program, 0, "tex", ST_BILINEAR_FILTERED); + assignSamplerNames(0, "tex", ST_BILINEAR_FILTERED); } LayerPassThroughShader::LayerPassThroughShader() @@ -832,7 +831,7 @@ namespace FullScreenShader GL_FRAGMENT_SHADER, "linearizedepth.frag"); assignUniforms("zn", "zf"); - assignSamplerNames(m_program, 0, "texture", ST_BILINEAR_FILTERED); + assignSamplerNames(0, "texture", ST_BILINEAR_FILTERED); } @@ -841,7 +840,7 @@ namespace FullScreenShader loadProgram(OBJECT, GL_COMPUTE_SHADER, "Lightspaceboundingbox.comp", GL_COMPUTE_SHADER, "utils/getPosFromUVDepth.frag"); - assignSamplerNames(m_program, 0, "depth", ST_NEAREST_FILTERED); + assignSamplerNames(0, "depth", ST_NEAREST_FILTERED); assignUniforms("SunCamMatrix", "split0", "split1", "split2", "splitmax"); GLuint block_idx = glGetProgramResourceIndex(m_program, GL_SHADER_STORAGE_BLOCK, "BoundingBoxes"); glShaderStorageBlockBinding(m_program, block_idx, 2); @@ -863,7 +862,7 @@ namespace FullScreenShader loadProgram(OBJECT, GL_COMPUTE_SHADER, "depthhistogram.comp", GL_COMPUTE_SHADER, "utils/getPosFromUVDepth.frag"); - assignSamplerNames(m_program, 0, "depth", ST_NEAREST_FILTERED); + assignSamplerNames(0, "depth", ST_NEAREST_FILTERED); GLuint block_idx = glGetProgramResourceIndex(m_program, GL_SHADER_STORAGE_BLOCK, "Histogram"); glShaderStorageBlockBinding(m_program, block_idx, 1); @@ -876,7 +875,7 @@ namespace FullScreenShader GL_FRAGMENT_SHADER, "glow.frag"); assignUniforms(); - assignSamplerNames(m_program, 0, "tex", ST_BILINEAR_FILTERED); + assignSamplerNames(0, "tex", ST_BILINEAR_FILTERED); vao = createVAO(m_program); } @@ -889,7 +888,7 @@ namespace FullScreenShader GL_FRAGMENT_SHADER, "ssao.frag"); assignUniforms("radius", "k", "sigma"); - assignSamplerNames(m_program, 0, "dtex", ST_SEMI_TRILINEAR); + assignSamplerNames(0, "dtex", ST_SEMI_TRILINEAR); } FogShader::FogShader() @@ -900,7 +899,7 @@ namespace FullScreenShader GL_FRAGMENT_SHADER, "fog.frag"); assignUniforms("density", "col"); - assignSamplerNames(m_program, 0, "tex", ST_NEAREST_FILTERED); + assignSamplerNames(0, "tex", ST_NEAREST_FILTERED); } MotionBlurShader::MotionBlurShader() @@ -910,8 +909,8 @@ namespace FullScreenShader GL_FRAGMENT_SHADER, "utils/getPosFromUVDepth.frag", GL_FRAGMENT_SHADER, "motion_blur.frag"); assignUniforms("previous_viewproj", "center", "boost_amount", "mask_radius"); - assignSamplerNames(m_program, 0, "color_buffer", ST_BILINEAR_CLAMPED_FILTERED, - 1, "dtex", ST_NEAREST_FILTERED); + assignSamplerNames(0, "color_buffer", ST_BILINEAR_CLAMPED_FILTERED, + 1, "dtex", ST_NEAREST_FILTERED); } GodFadeShader::GodFadeShader() @@ -921,7 +920,7 @@ namespace FullScreenShader GL_FRAGMENT_SHADER, "godfade.frag"); assignUniforms("col"); - assignSamplerNames(m_program, 0, "tex", ST_BILINEAR_FILTERED); + assignSamplerNames(0, "tex", ST_BILINEAR_FILTERED); } GodRayShader::GodRayShader() @@ -931,7 +930,7 @@ namespace FullScreenShader GL_FRAGMENT_SHADER, "godray.frag"); assignUniforms("sunpos"); - assignSamplerNames(m_program, 0, "tex", ST_BILINEAR_FILTERED); + assignSamplerNames(0, "tex", ST_BILINEAR_FILTERED); } MLAAColorEdgeDetectionSHader::MLAAColorEdgeDetectionSHader() @@ -941,7 +940,7 @@ namespace FullScreenShader GL_FRAGMENT_SHADER, "mlaa_color1.frag"); assignUniforms("PIXEL_SIZE"); - assignSamplerNames(m_program, 0, "colorMapG", ST_NEAREST_FILTERED); + assignSamplerNames(0, "colorMapG", ST_NEAREST_FILTERED); } MLAABlendWeightSHader::MLAABlendWeightSHader() @@ -951,8 +950,8 @@ namespace FullScreenShader GL_FRAGMENT_SHADER, "mlaa_blend2.frag"); assignUniforms("PIXEL_SIZE"); - assignSamplerNames(m_program, 0, "edgesMap", ST_BILINEAR_FILTERED, - 1, "areaMap", ST_NEAREST_FILTERED); + assignSamplerNames(0, "edgesMap", ST_BILINEAR_FILTERED, + 1, "areaMap", ST_NEAREST_FILTERED); } MLAAGatherSHader::MLAAGatherSHader() @@ -962,7 +961,7 @@ namespace FullScreenShader GL_FRAGMENT_SHADER, "mlaa_neigh3.frag"); assignUniforms("PIXEL_SIZE"); - assignSamplerNames(m_program, 0, "blendMap", ST_NEAREST_FILTERED, - 1, "colorMap", ST_NEAREST_FILTERED); + assignSamplerNames(0, "blendMap", ST_NEAREST_FILTERED, + 1, "colorMap", ST_NEAREST_FILTERED); } } diff --git a/src/graphics/stkbillboard.cpp b/src/graphics/stkbillboard.cpp index 6c64a2d27..ef0ac290f 100644 --- a/src/graphics/stkbillboard.cpp +++ b/src/graphics/stkbillboard.cpp @@ -42,8 +42,7 @@ public: assignUniforms("ModelViewMatrix", "ProjectionMatrix", "Position", "Size"); - assignSamplerNames(m_program, - 0, "tex", ST_TRILINEAR_ANISOTROPIC_FILTERED); + assignSamplerNames(0, "tex", ST_TRILINEAR_ANISOTROPIC_FILTERED); } // BillboardShader }; // BillboardShader diff --git a/src/graphics/texture_shader.hpp b/src/graphics/texture_shader.hpp index 6a6d193a8..6b6b459bc 100644 --- a/src/graphics/texture_shader.hpp +++ b/src/graphics/texture_shader.hpp @@ -103,7 +103,7 @@ private: /** End of recursive variadic template AssigTextureNames. It just * checks if the number of arguments is correct.*/ template - void assignTextureNamesImpl(GLuint) + void assignTextureNamesImpl() { static_assert(N == NUM_TEXTURES, "Wrong number of texture names"); } // assignTextureNamesImpl @@ -113,9 +113,8 @@ private: * list of arguments. */ template - void assignTextureNamesImpl(GLuint program, GLuint tex_unit, - const char *name, SamplerTypeNew sampler_type, - Args...args) + void assignTextureNamesImpl(GLuint tex_unit, const char *name, + SamplerTypeNew sampler_type, Args...args) { m_sampler_ids.push_back(createSamplers(sampler_type)); @@ -123,7 +122,7 @@ private: assert(sampler_type >= ST_MIN && sampler_type <= ST_MAX); m_texture_type.push_back(m_all_texture_types[sampler_type]); - GLuint location = glGetUniformLocation(program, name); + GLuint location = glGetUniformLocation(m_program, name); m_texture_location.push_back(location); glUniform1i(location, tex_unit); m_texture_units.push_back(tex_unit); @@ -132,7 +131,7 @@ private: assert(sampler_type >= ST_MIN && sampler_type <= ST_MAX); m_bind_functions.push_back( m_all_bind_functions[sampler_type]); - assignTextureNamesImpl(program, args...); + assignTextureNamesImpl(args...); } // assignTextureNamesImpl // ------------------------------------------------------------------------ @@ -141,10 +140,10 @@ public: * from instances. */ template - void assignSamplerNames(GLuint program, Args...args) + void assignSamplerNames(Args...args) { - glUseProgram(program); - assignTextureNamesImpl<0>(program, args...); + glUseProgram(m_program); + assignTextureNamesImpl<0>(args...); glUseProgram(0); } // AssignSamplerNames