1 #include <mbgl/shaders/shaders.hpp> 2 #include <mbgl/shaders/preludes.hpp> 3 #include <mbgl/programs/program_parameters.hpp> 4 5 #include <cassert> 6 #include <sstream> 7 #include <iomanip> 8 9 namespace mbgl { 10 namespace shaders { 11 fragmentSource(const ProgramParameters & parameters,const char * fragmentSource)12std::string fragmentSource(const ProgramParameters& parameters, const char* fragmentSource) { 13 return parameters.getDefines() + fragmentPrelude + fragmentSource; 14 } 15 vertexSource(const ProgramParameters & parameters,const char * vertexSource)16std::string vertexSource(const ProgramParameters& parameters, const char* vertexSource) { 17 return parameters.getDefines() + vertexPrelude + vertexSource; 18 } 19 programIdentifier(const std::string & vertexSource,const std::string & fragmentSource)20std::string programIdentifier(const std::string& vertexSource, const std::string& fragmentSource) { 21 std::ostringstream ss; 22 ss << std::setfill('0') << std::setw(sizeof(size_t) * 2) << std::hex; 23 ss << std::hash<std::string>()(vertexSource); 24 ss << std::hash<std::string>()(fragmentSource); 25 ss << "v2"; 26 return ss.str(); 27 } 28 29 } // namespace shaders 30 } // namespace mbgl 31