Converted remaining shaders.
This commit is contained in:
parent
5070531ad7
commit
a16bbf71a4
@ -1653,7 +1653,7 @@ namespace FullScreenShader
|
||||
GL_COMPUTE_SHADER, "gaussian6h.comp");
|
||||
TU_dest = 1;
|
||||
assignUniforms("pixel", "weights");
|
||||
assignSamplerNames(m_program, 0, "source");
|
||||
assignSamplerNames(m_program, 0, "source", ST_BILINEAR_CLAMPED_FILTERED);
|
||||
assignTextureUnit(TU_dest, "dest");
|
||||
}
|
||||
|
||||
@ -1663,7 +1663,7 @@ namespace FullScreenShader
|
||||
GL_COMPUTE_SHADER, "blurshadowH.comp");
|
||||
TU_dest = 1;
|
||||
assignUniforms("pixel", "weights");
|
||||
assignSamplerNames(m_program, 0, "source");
|
||||
assignSamplerNames(m_program, 0, "source", ST_NEARED_CLAMPED_FILTERED);
|
||||
assignTextureUnit(TU_dest, "dest");
|
||||
}
|
||||
|
||||
@ -1674,7 +1674,7 @@ namespace FullScreenShader
|
||||
GL_FRAGMENT_SHADER, "gaussian6h.frag");
|
||||
assignUniforms("pixel", "sigma");
|
||||
|
||||
assignSamplerNames(m_program, 0, "tex");
|
||||
assignSamplerNames(m_program, 0, "tex", ST_BILINEAR_CLAMPED_FILTERED);
|
||||
}
|
||||
|
||||
HorizontalBlurShader::HorizontalBlurShader()
|
||||
@ -1684,7 +1684,7 @@ namespace FullScreenShader
|
||||
GL_FRAGMENT_SHADER, "gaussian6h.frag");
|
||||
assignUniforms("pixel");
|
||||
|
||||
assignSamplerNames(m_program, 0, "tex");
|
||||
assignSamplerNames(m_program, 0, "tex", ST_BILINEAR_CLAMPED_FILTERED);
|
||||
}
|
||||
|
||||
Gaussian3HBlurShader::Gaussian3HBlurShader()
|
||||
@ -1694,7 +1694,7 @@ namespace FullScreenShader
|
||||
GL_FRAGMENT_SHADER, "gaussian3h.frag");
|
||||
assignUniforms("pixel");
|
||||
|
||||
assignSamplerNames(m_program, 0, "tex");
|
||||
assignSamplerNames(m_program, 0, "tex", ST_BILINEAR_CLAMPED_FILTERED);
|
||||
}
|
||||
|
||||
Gaussian17TapVShader::Gaussian17TapVShader()
|
||||
@ -1704,7 +1704,8 @@ namespace FullScreenShader
|
||||
GL_FRAGMENT_SHADER, "bilateralV.frag");
|
||||
assignUniforms("pixel");
|
||||
|
||||
assignSamplerNames(m_program, 0, "tex", 1, "depth");
|
||||
assignSamplerNames(m_program, 0, "tex", ST_BILINEAR_CLAMPED_FILTERED,
|
||||
1, "depth", ST_BILINEAR_CLAMPED_FILTERED);
|
||||
}
|
||||
|
||||
ComputeGaussian17TapVShader::ComputeGaussian17TapVShader()
|
||||
@ -1713,7 +1714,8 @@ namespace FullScreenShader
|
||||
GL_COMPUTE_SHADER, "bilateralV.comp");
|
||||
TU_dest = 2;
|
||||
assignUniforms("pixel");
|
||||
assignSamplerNames(m_program, 0, "source", 1, "depth");
|
||||
assignSamplerNames(m_program, 0, "source", ST_NEARED_CLAMPED_FILTERED,
|
||||
1, "depth", ST_NEARED_CLAMPED_FILTERED);
|
||||
assignTextureUnit(TU_dest, "dest");
|
||||
}
|
||||
|
||||
@ -1723,7 +1725,7 @@ namespace FullScreenShader
|
||||
GL_COMPUTE_SHADER, "gaussian6v.comp");
|
||||
TU_dest = 1;
|
||||
assignUniforms("pixel", "weights");
|
||||
assignSamplerNames(m_program, 0, "source");
|
||||
assignSamplerNames(m_program, 0, "source", ST_BILINEAR_CLAMPED_FILTERED);
|
||||
assignTextureUnit(TU_dest, "dest");
|
||||
}
|
||||
|
||||
@ -1733,7 +1735,7 @@ namespace FullScreenShader
|
||||
GL_COMPUTE_SHADER, "blurshadowV.comp");
|
||||
TU_dest = 1;
|
||||
assignUniforms("pixel", "weights");
|
||||
assignSamplerNames(m_program, 0, "source");
|
||||
assignSamplerNames(m_program, 0, "source", ST_NEARED_CLAMPED_FILTERED);
|
||||
assignTextureUnit(TU_dest, "dest");
|
||||
}
|
||||
|
||||
@ -1744,7 +1746,7 @@ namespace FullScreenShader
|
||||
GL_FRAGMENT_SHADER, "gaussian6v.frag");
|
||||
assignUniforms("pixel", "sigma");
|
||||
|
||||
assignSamplerNames(m_program, 0, "tex");
|
||||
assignSamplerNames(m_program, 0, "tex", ST_BILINEAR_CLAMPED_FILTERED);
|
||||
}
|
||||
|
||||
Gaussian3VBlurShader::Gaussian3VBlurShader()
|
||||
@ -1754,7 +1756,7 @@ namespace FullScreenShader
|
||||
GL_FRAGMENT_SHADER, "gaussian3v.frag");
|
||||
assignUniforms("pixel");
|
||||
|
||||
assignSamplerNames(m_program, 0, "tex");
|
||||
assignSamplerNames(m_program, 0, "tex", ST_BILINEAR_CLAMPED_FILTERED);
|
||||
}
|
||||
|
||||
PassThroughShader::PassThroughShader()
|
||||
@ -1764,7 +1766,7 @@ namespace FullScreenShader
|
||||
GL_FRAGMENT_SHADER, "passthrough.frag");
|
||||
|
||||
assignUniforms("width", "height");
|
||||
assignSamplerNames(m_program, 0, "tex");
|
||||
assignSamplerNames(m_program, 0, "tex", ST_BILINEAR_FILTERED);
|
||||
}
|
||||
|
||||
LayerPassThroughShader::LayerPassThroughShader()
|
||||
@ -1785,7 +1787,7 @@ namespace FullScreenShader
|
||||
GL_FRAGMENT_SHADER, "linearizedepth.frag");
|
||||
assignUniforms("zn", "zf");
|
||||
|
||||
assignSamplerNames(m_program, 0, "texture");
|
||||
assignSamplerNames(m_program, 0, "texture", ST_BILINEAR_FILTERED);
|
||||
}
|
||||
|
||||
|
||||
@ -1794,7 +1796,7 @@ namespace FullScreenShader
|
||||
loadProgram(OBJECT,
|
||||
GL_COMPUTE_SHADER, "Lightspaceboundingbox.comp",
|
||||
GL_COMPUTE_SHADER, "utils/getPosFromUVDepth.frag");
|
||||
assignSamplerNames(m_program, 0, "depth");
|
||||
assignSamplerNames(m_program, 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);
|
||||
@ -1816,7 +1818,7 @@ namespace FullScreenShader
|
||||
loadProgram(OBJECT,
|
||||
GL_COMPUTE_SHADER, "depthhistogram.comp",
|
||||
GL_COMPUTE_SHADER, "utils/getPosFromUVDepth.frag");
|
||||
assignSamplerNames(m_program, 0, "depth");
|
||||
assignSamplerNames(m_program, 0, "depth", ST_NEAREST_FILTERED);
|
||||
|
||||
GLuint block_idx = glGetProgramResourceIndex(m_program, GL_SHADER_STORAGE_BLOCK, "Histogram");
|
||||
glShaderStorageBlockBinding(m_program, block_idx, 1);
|
||||
@ -1829,7 +1831,7 @@ namespace FullScreenShader
|
||||
GL_FRAGMENT_SHADER, "glow.frag");
|
||||
assignUniforms();
|
||||
|
||||
assignSamplerNames(m_program, 0, "tex");
|
||||
assignSamplerNames(m_program, 0, "tex", ST_BILINEAR_FILTERED);
|
||||
vao = createVAO(m_program);
|
||||
}
|
||||
|
||||
@ -1842,7 +1844,7 @@ namespace FullScreenShader
|
||||
GL_FRAGMENT_SHADER, "ssao.frag");
|
||||
|
||||
assignUniforms("radius", "k", "sigma");
|
||||
assignSamplerNames(m_program, 0, "dtex");
|
||||
assignSamplerNames(m_program, 0, "dtex", ST_SEMI_TRILINEAR);
|
||||
}
|
||||
|
||||
FogShader::FogShader()
|
||||
@ -1853,7 +1855,7 @@ namespace FullScreenShader
|
||||
GL_FRAGMENT_SHADER, "fog.frag");
|
||||
|
||||
assignUniforms("density", "col");
|
||||
assignSamplerNames(m_program, 0, "tex");
|
||||
assignSamplerNames(m_program, 0, "tex", ST_NEAREST_FILTERED);
|
||||
}
|
||||
|
||||
MotionBlurShader::MotionBlurShader()
|
||||
@ -1863,7 +1865,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", 1, "dtex");
|
||||
assignSamplerNames(m_program, 0, "color_buffer", ST_BILINEAR_CLAMPED_FILTERED,
|
||||
1, "dtex", ST_NEAREST_FILTERED);
|
||||
}
|
||||
|
||||
GodFadeShader::GodFadeShader()
|
||||
@ -1873,7 +1876,7 @@ namespace FullScreenShader
|
||||
GL_FRAGMENT_SHADER, "godfade.frag");
|
||||
assignUniforms("col");
|
||||
|
||||
assignSamplerNames(m_program, 0, "tex");
|
||||
assignSamplerNames(m_program, 0, "tex", ST_BILINEAR_FILTERED);
|
||||
}
|
||||
|
||||
GodRayShader::GodRayShader()
|
||||
@ -1883,7 +1886,7 @@ namespace FullScreenShader
|
||||
GL_FRAGMENT_SHADER, "godray.frag");
|
||||
|
||||
assignUniforms("sunpos");
|
||||
assignSamplerNames(m_program, 0, "tex");
|
||||
assignSamplerNames(m_program, 0, "tex", ST_BILINEAR_FILTERED);
|
||||
}
|
||||
|
||||
MLAAColorEdgeDetectionSHader::MLAAColorEdgeDetectionSHader()
|
||||
@ -1893,7 +1896,7 @@ namespace FullScreenShader
|
||||
GL_FRAGMENT_SHADER, "mlaa_color1.frag");
|
||||
assignUniforms("PIXEL_SIZE");
|
||||
|
||||
assignSamplerNames(m_program, 0, "colorMapG");
|
||||
assignSamplerNames(m_program, 0, "colorMapG", ST_NEAREST_FILTERED);
|
||||
}
|
||||
|
||||
MLAABlendWeightSHader::MLAABlendWeightSHader()
|
||||
@ -1903,7 +1906,8 @@ namespace FullScreenShader
|
||||
GL_FRAGMENT_SHADER, "mlaa_blend2.frag");
|
||||
assignUniforms("PIXEL_SIZE");
|
||||
|
||||
assignSamplerNames(m_program, 0, "edgesMap", 1, "areaMap");
|
||||
assignSamplerNames(m_program, 0, "edgesMap", ST_BILINEAR_FILTERED,
|
||||
1, "areaMap", ST_NEAREST_FILTERED);
|
||||
}
|
||||
|
||||
MLAAGatherSHader::MLAAGatherSHader()
|
||||
@ -1913,7 +1917,8 @@ namespace FullScreenShader
|
||||
GL_FRAGMENT_SHADER, "mlaa_neigh3.frag");
|
||||
assignUniforms("PIXEL_SIZE");
|
||||
|
||||
assignSamplerNames(m_program, 0, "blendMap", 1, "colorMap");
|
||||
assignSamplerNames(m_program, 0, "blendMap", ST_NEAREST_FILTERED,
|
||||
1, "colorMap", ST_NEAREST_FILTERED);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1926,7 +1931,7 @@ namespace UIShader
|
||||
GL_VERTEX_SHADER, "primitive2dlist.vert",
|
||||
GL_FRAGMENT_SHADER, "transparent.frag");
|
||||
assignUniforms();
|
||||
assignSamplerNames(m_program, 0, "tex");
|
||||
assignSamplerNames(m_program, 0, "tex", ST_BILINEAR_FILTERED);
|
||||
}
|
||||
|
||||
TextureRectShader::TextureRectShader()
|
||||
@ -1936,7 +1941,7 @@ namespace UIShader
|
||||
GL_FRAGMENT_SHADER, "texturedquad.frag");
|
||||
assignUniforms("center", "size", "texcenter", "texsize");
|
||||
|
||||
assignSamplerNames(m_program, 0, "tex");
|
||||
assignSamplerNames(m_program, 0, "tex", ST_BILINEAR_FILTERED);
|
||||
}
|
||||
|
||||
UniformColoredTextureRectShader::UniformColoredTextureRectShader()
|
||||
@ -1947,7 +1952,7 @@ namespace UIShader
|
||||
|
||||
assignUniforms("center", "size", "texcenter", "texsize", "color");
|
||||
|
||||
assignSamplerNames(m_program, 0, "tex");
|
||||
assignSamplerNames(m_program, 0, "tex", ST_BILINEAR_FILTERED);
|
||||
}
|
||||
|
||||
ColoredTextureRectShader::ColoredTextureRectShader()
|
||||
@ -1957,7 +1962,7 @@ namespace UIShader
|
||||
GL_FRAGMENT_SHADER, "colortexturedquad.frag");
|
||||
assignUniforms("center", "size", "texcenter", "texsize");
|
||||
|
||||
assignSamplerNames(m_program, 0, "tex");
|
||||
assignSamplerNames(m_program, 0, "tex", ST_BILINEAR_FILTERED);
|
||||
|
||||
glGenVertexArrays(1, &vao);
|
||||
glBindVertexArray(vao);
|
||||
|
@ -543,45 +543,52 @@ public:
|
||||
ComputeGaussian17TapHShader();
|
||||
};
|
||||
|
||||
class ComputeGaussian6HBlurShader : public Shader<ComputeGaussian6HBlurShader, core::vector2df, std::vector<float> >, public TextureRead<Bilinear_Clamped_Filtered>
|
||||
class ComputeGaussian6HBlurShader : public Shader<ComputeGaussian6HBlurShader, core::vector2df, std::vector<float> >,
|
||||
public TextureReadNew<ST_BILINEAR_CLAMPED_FILTERED>
|
||||
{
|
||||
public:
|
||||
GLuint TU_dest;
|
||||
ComputeGaussian6HBlurShader();
|
||||
};
|
||||
|
||||
class ComputeShadowBlurHShader : public Shader<ComputeShadowBlurHShader, core::vector2df, std::vector<float> >, public TextureRead<Neared_Clamped_Filtered>
|
||||
class ComputeShadowBlurHShader : public Shader<ComputeShadowBlurHShader, core::vector2df, std::vector<float> >,
|
||||
public TextureReadNew<ST_NEARED_CLAMPED_FILTERED>
|
||||
{
|
||||
public:
|
||||
GLuint TU_dest;
|
||||
ComputeShadowBlurHShader();
|
||||
};
|
||||
|
||||
class Gaussian6HBlurShader : public Shader<Gaussian6HBlurShader, core::vector2df, float>, public TextureRead<Bilinear_Clamped_Filtered>
|
||||
class Gaussian6HBlurShader : public Shader<Gaussian6HBlurShader, core::vector2df, float>,
|
||||
public TextureReadNew<ST_BILINEAR_CLAMPED_FILTERED>
|
||||
{
|
||||
public:
|
||||
Gaussian6HBlurShader();
|
||||
};
|
||||
|
||||
class HorizontalBlurShader : public Shader<HorizontalBlurShader, core::vector2df>, public TextureRead<Bilinear_Clamped_Filtered>
|
||||
class HorizontalBlurShader : public Shader<HorizontalBlurShader, core::vector2df>,
|
||||
public TextureReadNew<ST_BILINEAR_CLAMPED_FILTERED>
|
||||
{
|
||||
public:
|
||||
HorizontalBlurShader();
|
||||
};
|
||||
|
||||
class Gaussian3HBlurShader : public Shader<Gaussian3HBlurShader, core::vector2df>, public TextureRead<Bilinear_Clamped_Filtered>
|
||||
class Gaussian3HBlurShader : public Shader<Gaussian3HBlurShader, core::vector2df>,
|
||||
public TextureReadNew<ST_BILINEAR_CLAMPED_FILTERED>
|
||||
{
|
||||
public:
|
||||
Gaussian3HBlurShader();
|
||||
};
|
||||
|
||||
class Gaussian17TapVShader : public Shader<Gaussian17TapVShader, core::vector2df>, public TextureRead<Bilinear_Clamped_Filtered, Bilinear_Clamped_Filtered>
|
||||
class Gaussian17TapVShader : public Shader<Gaussian17TapVShader, core::vector2df>,
|
||||
public TextureReadNew<ST_BILINEAR_CLAMPED_FILTERED, ST_BILINEAR_CLAMPED_FILTERED>
|
||||
{
|
||||
public:
|
||||
Gaussian17TapVShader();
|
||||
};
|
||||
|
||||
class ComputeGaussian17TapVShader : public Shader<ComputeGaussian17TapVShader, core::vector2df>, public TextureRead<Neared_Clamped_Filtered, Neared_Clamped_Filtered>
|
||||
class ComputeGaussian17TapVShader : public Shader<ComputeGaussian17TapVShader, core::vector2df>,
|
||||
public TextureReadNew<ST_NEARED_CLAMPED_FILTERED, ST_NEARED_CLAMPED_FILTERED>
|
||||
{
|
||||
public:
|
||||
GLuint TU_dest;
|
||||
@ -589,33 +596,38 @@ public:
|
||||
ComputeGaussian17TapVShader();
|
||||
};
|
||||
|
||||
class ComputeGaussian6VBlurShader : public Shader<ComputeGaussian6VBlurShader, core::vector2df, std::vector<float> >, public TextureRead<Bilinear_Clamped_Filtered>
|
||||
class ComputeGaussian6VBlurShader : public Shader<ComputeGaussian6VBlurShader, core::vector2df, std::vector<float> >,
|
||||
public TextureReadNew<ST_BILINEAR_CLAMPED_FILTERED>
|
||||
{
|
||||
public:
|
||||
GLuint TU_dest;
|
||||
ComputeGaussian6VBlurShader();
|
||||
};
|
||||
|
||||
class ComputeShadowBlurVShader : public Shader<ComputeShadowBlurVShader, core::vector2df, std::vector<float> >, public TextureRead<Neared_Clamped_Filtered>
|
||||
class ComputeShadowBlurVShader : public Shader<ComputeShadowBlurVShader, core::vector2df, std::vector<float> >,
|
||||
public TextureReadNew<ST_NEARED_CLAMPED_FILTERED>
|
||||
{
|
||||
public:
|
||||
GLuint TU_dest;
|
||||
ComputeShadowBlurVShader();
|
||||
};
|
||||
|
||||
class Gaussian6VBlurShader : public Shader<Gaussian6VBlurShader, core::vector2df, float>, public TextureRead<Bilinear_Clamped_Filtered>
|
||||
class Gaussian6VBlurShader : public Shader<Gaussian6VBlurShader, core::vector2df, float>,
|
||||
public TextureReadNew<ST_BILINEAR_CLAMPED_FILTERED>
|
||||
{
|
||||
public:
|
||||
Gaussian6VBlurShader();
|
||||
};
|
||||
|
||||
class Gaussian3VBlurShader : public Shader<Gaussian3VBlurShader, core::vector2df>, public TextureRead<Bilinear_Clamped_Filtered>
|
||||
class Gaussian3VBlurShader : public Shader<Gaussian3VBlurShader, core::vector2df>,
|
||||
public TextureReadNew<ST_BILINEAR_CLAMPED_FILTERED>
|
||||
{
|
||||
public:
|
||||
Gaussian3VBlurShader();
|
||||
};
|
||||
|
||||
class PassThroughShader : public Shader<PassThroughShader, int, int>, public TextureRead<Bilinear_Filtered>
|
||||
class PassThroughShader : public Shader<PassThroughShader, int, int>,
|
||||
public TextureReadNew<ST_BILINEAR_FILTERED>
|
||||
{
|
||||
public:
|
||||
PassThroughShader();
|
||||
@ -630,13 +642,17 @@ public:
|
||||
LayerPassThroughShader();
|
||||
};
|
||||
|
||||
class LinearizeDepthShader : public Shader<LinearizeDepthShader, float, float>, public TextureRead<Bilinear_Filtered>
|
||||
class LinearizeDepthShader : public Shader<LinearizeDepthShader, float, float>,
|
||||
public TextureReadNew<ST_BILINEAR_FILTERED>
|
||||
{
|
||||
public:
|
||||
LinearizeDepthShader();
|
||||
};
|
||||
|
||||
class LightspaceBoundingBoxShader : public Shader<LightspaceBoundingBoxShader, core::matrix4, float, float, float, float>, public TextureRead < Nearest_Filtered >
|
||||
class LightspaceBoundingBoxShader : public Shader<LightspaceBoundingBoxShader,
|
||||
core::matrix4, float, float,
|
||||
float, float>,
|
||||
public TextureReadNew<ST_NEAREST_FILTERED >
|
||||
{
|
||||
public:
|
||||
LightspaceBoundingBoxShader();
|
||||
@ -648,13 +664,15 @@ public:
|
||||
ShadowMatrixesGenerationShader();
|
||||
};
|
||||
|
||||
class DepthHistogramShader : public Shader<DepthHistogramShader>, public TextureRead <Nearest_Filtered>
|
||||
class DepthHistogramShader : public Shader<DepthHistogramShader>,
|
||||
public TextureReadNew<ST_NEAREST_FILTERED>
|
||||
{
|
||||
public:
|
||||
DepthHistogramShader();
|
||||
};
|
||||
|
||||
class GlowShader : public Shader<GlowShader>, public TextureRead<Bilinear_Filtered>
|
||||
class GlowShader : public Shader<GlowShader>,
|
||||
public TextureReadNew<ST_BILINEAR_FILTERED>
|
||||
{
|
||||
public:
|
||||
GLuint vao;
|
||||
@ -662,49 +680,57 @@ public:
|
||||
GlowShader();
|
||||
};
|
||||
|
||||
class SSAOShader : public Shader<SSAOShader, float, float, float>, public TextureRead<Semi_trilinear>
|
||||
class SSAOShader : public Shader<SSAOShader, float, float, float>,
|
||||
public TextureReadNew<ST_SEMI_TRILINEAR>
|
||||
{
|
||||
public:
|
||||
SSAOShader();
|
||||
};
|
||||
|
||||
class FogShader : public Shader<FogShader, float, core::vector3df>, public TextureRead<Nearest_Filtered>
|
||||
class FogShader : public Shader<FogShader, float, core::vector3df>,
|
||||
public TextureReadNew<ST_NEAREST_FILTERED>
|
||||
{
|
||||
public:
|
||||
FogShader();
|
||||
};
|
||||
|
||||
class MotionBlurShader : public Shader<MotionBlurShader, core::matrix4, core::vector2df, float, float>, public TextureRead<Bilinear_Clamped_Filtered, Nearest_Filtered>
|
||||
class MotionBlurShader : public Shader<MotionBlurShader, core::matrix4, core::vector2df, float, float>,
|
||||
public TextureReadNew<ST_BILINEAR_CLAMPED_FILTERED, ST_NEAREST_FILTERED>
|
||||
{
|
||||
public:
|
||||
MotionBlurShader();
|
||||
};
|
||||
|
||||
class GodFadeShader : public Shader<GodFadeShader, video::SColorf>, public TextureRead<Bilinear_Filtered>
|
||||
class GodFadeShader : public Shader<GodFadeShader, video::SColorf>,
|
||||
public TextureReadNew<ST_BILINEAR_FILTERED>
|
||||
{
|
||||
public:
|
||||
GodFadeShader();
|
||||
};
|
||||
|
||||
class GodRayShader : public Shader<GodRayShader, core::vector2df>, public TextureRead<Bilinear_Filtered>
|
||||
class GodRayShader : public Shader<GodRayShader, core::vector2df>,
|
||||
public TextureReadNew<ST_BILINEAR_FILTERED>
|
||||
{
|
||||
public:
|
||||
GodRayShader();
|
||||
};
|
||||
|
||||
class MLAAColorEdgeDetectionSHader : public Shader<MLAAColorEdgeDetectionSHader, core::vector2df>, public TextureRead<Nearest_Filtered>
|
||||
class MLAAColorEdgeDetectionSHader : public Shader<MLAAColorEdgeDetectionSHader, core::vector2df>,
|
||||
public TextureReadNew<ST_NEAREST_FILTERED>
|
||||
{
|
||||
public:
|
||||
MLAAColorEdgeDetectionSHader();
|
||||
};
|
||||
|
||||
class MLAABlendWeightSHader : public Shader<MLAABlendWeightSHader, core::vector2df>, public TextureRead<Bilinear_Filtered, Nearest_Filtered>
|
||||
class MLAABlendWeightSHader : public Shader<MLAABlendWeightSHader, core::vector2df>,
|
||||
public TextureReadNew<ST_BILINEAR_FILTERED, ST_NEAREST_FILTERED>
|
||||
{
|
||||
public:
|
||||
MLAABlendWeightSHader();
|
||||
};
|
||||
|
||||
class MLAAGatherSHader : public Shader<MLAAGatherSHader, core::vector2df>, public TextureRead<Nearest_Filtered, Nearest_Filtered>
|
||||
class MLAAGatherSHader : public Shader<MLAAGatherSHader, core::vector2df>,
|
||||
public TextureReadNew<ST_NEAREST_FILTERED, ST_NEAREST_FILTERED>
|
||||
{
|
||||
public:
|
||||
MLAAGatherSHader();
|
||||
@ -715,25 +741,36 @@ public:
|
||||
namespace UIShader
|
||||
{
|
||||
|
||||
class Primitive2DList : public Shader<Primitive2DList>, public TextureRead < Bilinear_Filtered >
|
||||
class Primitive2DList : public Shader<Primitive2DList>,
|
||||
public TextureReadNew<ST_BILINEAR_FILTERED >
|
||||
{
|
||||
public:
|
||||
Primitive2DList();
|
||||
};
|
||||
|
||||
class TextureRectShader : public Shader<TextureRectShader, core::vector2df, core::vector2df, core::vector2df, core::vector2df>, public TextureRead<Bilinear_Filtered>
|
||||
class TextureRectShader : public Shader<TextureRectShader, core::vector2df,
|
||||
core::vector2df, core::vector2df,
|
||||
core::vector2df>,
|
||||
public TextureReadNew<ST_BILINEAR_FILTERED>
|
||||
{
|
||||
public:
|
||||
TextureRectShader();
|
||||
};
|
||||
|
||||
class UniformColoredTextureRectShader : public Shader<UniformColoredTextureRectShader, core::vector2df, core::vector2df, core::vector2df, core::vector2df, video::SColor>, public TextureRead<Bilinear_Filtered>
|
||||
class UniformColoredTextureRectShader : public Shader<UniformColoredTextureRectShader,
|
||||
core::vector2df, core::vector2df,
|
||||
core::vector2df, core::vector2df,
|
||||
video::SColor>,
|
||||
public TextureReadNew<ST_BILINEAR_FILTERED>
|
||||
{
|
||||
public:
|
||||
UniformColoredTextureRectShader();
|
||||
};
|
||||
|
||||
class ColoredTextureRectShader : public Shader<ColoredTextureRectShader, core::vector2df, core::vector2df, core::vector2df, core::vector2df>, public TextureRead<Bilinear_Filtered>
|
||||
class ColoredTextureRectShader : public Shader<ColoredTextureRectShader, core::vector2df,
|
||||
core::vector2df, core::vector2df,
|
||||
core::vector2df>,
|
||||
public TextureReadNew<ST_BILINEAR_FILTERED>
|
||||
{
|
||||
public:
|
||||
GLuint colorvbo;
|
||||
@ -742,7 +779,8 @@ public:
|
||||
ColoredTextureRectShader();
|
||||
};
|
||||
|
||||
class ColoredRectShader : public Shader<ColoredRectShader, core::vector2df, core::vector2df, video::SColor>
|
||||
class ColoredRectShader : public Shader<ColoredRectShader, core::vector2df,
|
||||
core::vector2df, video::SColor>
|
||||
{
|
||||
public:
|
||||
ColoredRectShader();
|
||||
|
@ -30,6 +30,7 @@ TextureReadBaseNew::BindFunction TextureReadBaseNew::m_all_bind_functions[] =
|
||||
/* ST_VOLUME_LINEAR_FILTERED */ &TextureReadBaseNew::bindTextureVolume,
|
||||
/* ST_NEARED_CLAMPED_FILTERED */ &TextureReadBaseNew::bindTextureNearestClamped,
|
||||
/* ST_BILINEAR_CLAMPED_FILTERED */ &TextureReadBaseNew::bindTextureBilinearClamped,
|
||||
/* ST_SEMI_TRILINEAR */ &TextureReadBaseNew::bindTextureSemiTrilinear
|
||||
};
|
||||
|
||||
GLuint TextureReadBaseNew::m_all_texture_types[] =
|
||||
@ -42,6 +43,7 @@ GLuint TextureReadBaseNew::m_all_texture_types[] =
|
||||
/* ST_VOLUME_LINEAR_FILTERED */ GL_TEXTURE_3D,
|
||||
/* ST_NEARED_CLAMPED_FILTERED */ GL_TEXTURE_2D,
|
||||
/* ST_BILINEAR_CLAMPED_FILTERED */ GL_TEXTURE_2D,
|
||||
/* ST_SEMI_TRILINEAR */ GL_TEXTURE_2D
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
@ -181,6 +183,7 @@ void TextureReadBaseNew::bindTextureVolume(unsigned tex_unit, unsigned tex_id)
|
||||
} // bindTextureVolume
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
GLuint TextureReadBaseNew::createSamplers(SamplerTypeNew sampler_type)
|
||||
{
|
||||
switch (sampler_type)
|
||||
@ -213,6 +216,8 @@ GLuint TextureReadBaseNew::createSamplers(SamplerTypeNew sampler_type)
|
||||
}
|
||||
case ST_BILINEAR_CLAMPED_FILTERED:
|
||||
return createBilinearClampedSampler();
|
||||
case ST_SEMI_TRILINEAR:
|
||||
return createSemiTrilinearSampler();
|
||||
default:
|
||||
assert(false);
|
||||
return 0;
|
||||
@ -316,6 +321,20 @@ GLuint TextureReadBaseNew::createTrilinearClampedArray()
|
||||
#endif
|
||||
} // createTrilinearClampedArray
|
||||
// ----------------------------------------------------------------------------
|
||||
GLuint TextureReadBaseNew::createSemiTrilinearSampler()
|
||||
{
|
||||
#ifdef GL_VERSION_3_3
|
||||
unsigned id;
|
||||
glGenSamplers(1, &id);
|
||||
glSamplerParameteri(id, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
|
||||
glSamplerParameteri(id, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_NEAREST);
|
||||
glSamplerParameteri(id, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
|
||||
glSamplerParameteri(id, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
|
||||
glSamplerParameterf(id, GL_TEXTURE_MAX_ANISOTROPY_EXT, 1.);
|
||||
return id;
|
||||
#endif
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------
|
||||
|
@ -34,17 +34,15 @@ enum SamplerTypeNew {
|
||||
ST_VOLUME_LINEAR_FILTERED,
|
||||
ST_NEARED_CLAMPED_FILTERED,
|
||||
ST_BILINEAR_CLAMPED_FILTERED,
|
||||
ST_MAX = ST_BILINEAR_CLAMPED_FILTERED,
|
||||
|
||||
XST_SEMI_TRILINEAR,
|
||||
XST_TRILINEAR_CLAMPED_ARRAY2D
|
||||
ST_SEMI_TRILINEAR,
|
||||
ST_MAX = ST_SEMI_TRILINEAR
|
||||
};
|
||||
|
||||
|
||||
class TextureReadBaseNew
|
||||
{
|
||||
public:
|
||||
typedef std::function<void(unsigned, unsigned)> BindFunction;
|
||||
typedef std::function<void(GLuint, GLuint)> BindFunction;
|
||||
|
||||
protected:
|
||||
static void bindTextureNearest(GLuint tex_unit, GLuint tex_id);
|
||||
@ -53,10 +51,11 @@ protected:
|
||||
static void bindTextureNearestClamped(GLuint tex_unit, GLuint tex_id);
|
||||
static void bindTextureTrilinearAnisotropic(GLuint tex_unit, GLuint tex_id);
|
||||
static void bindTextureSemiTrilinear(GLuint tex_unit, GLuint tex_id);
|
||||
static void bindCubemapTrilinear(unsigned tex_unit, unsigned tex_id);
|
||||
static void bindTextureShadow(unsigned tex_unit, unsigned tex_id);
|
||||
static void bindTrilinearClampedArrayTexture(unsigned tex_unit, unsigned tex_id);
|
||||
static void bindTextureVolume(unsigned tex_unit, unsigned tex_id);
|
||||
static void bindCubemapTrilinear(GLuint tex_unit, GLuint tex_id);
|
||||
static void bindTextureShadow(GLuint tex_unit, GLuint tex_id);
|
||||
static void bindTrilinearClampedArrayTexture(GLuint tex_unit, GLuint tex_id);
|
||||
static void bindTextureVolume(GLuint tex_unit, GLuint tex_id);
|
||||
|
||||
GLuint createSamplers(SamplerTypeNew sampler_type);
|
||||
private:
|
||||
|
||||
@ -66,7 +65,7 @@ private:
|
||||
static GLuint createShadowSampler();
|
||||
static GLuint createTrilinearClampedArray();
|
||||
static GLuint createBilinearClampedSampler();
|
||||
|
||||
static GLuint createSemiTrilinearSampler();
|
||||
protected:
|
||||
static BindFunction m_all_bind_functions[];
|
||||
std::vector<BindFunction> m_bind_functions;
|
||||
|
Loading…
Reference in New Issue
Block a user