#pragma once #include #include namespace mbgl { class SDFShader : public Shader { public: SDFShader(gl::GLObjectStore&); UniformMatrix<4> u_matrix = {"u_matrix", *this}; UniformMatrix<4> u_exmatrix = {"u_exmatrix", *this}; Uniform> u_color = {"u_color", *this}; Uniform> u_texsize = {"u_texsize", *this}; Uniform u_buffer = {"u_buffer", *this}; Uniform u_gamma = {"u_gamma", *this}; Uniform u_zoom = {"u_zoom", *this}; Uniform u_skewed = {"u_skewed", *this}; Uniform u_texture = {"u_texture", *this}; Uniform u_fadetexture = {"u_fadetexture", *this}; protected: GLint a_offset = -1; GLint a_data1 = -1; GLint a_data2 = -1; }; class SDFGlyphShader : public SDFShader { public: SDFGlyphShader(gl::GLObjectStore& glObjectStore) : SDFShader(glObjectStore) {} void bind(GLbyte *offset) final; }; class SDFIconShader : public SDFShader { public: SDFIconShader(gl::GLObjectStore& glObjectStore) : SDFShader(glObjectStore) {} void bind(GLbyte *offset) final; }; } // namespace mbgl