#include #include #include #include #include namespace mbgl { namespace programs { namespace gl { std::string fragmentSource(const ProgramParameters& parameters, const char* fragmentSource) { return parameters.getDefines() + fragmentShaderPrelude + fragmentSource; } std::string vertexSource(const ProgramParameters& parameters, const char* vertexSource) { return parameters.getDefines() + vertexShaderPrelude + vertexSource; } std::string programIdentifier(const std::string& vertexSource, const std::string& fragmentSource) { std::string result; result.reserve((sizeof(size_t) * 2) * 2 + 2); // 2 size_t hex values + "v2" result += util::toHex(std::hash()(vertexSource)); result += util::toHex(std::hash()(fragmentSource)); result += "v3"; return result; } } // namespace gl } // namespace programs } // namespace mbgl