summaryrefslogtreecommitdiff
path: root/src/mbgl/programs/gl/shaders.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/programs/gl/shaders.cpp')
-rw-r--r--src/mbgl/programs/gl/shaders.cpp31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/mbgl/programs/gl/shaders.cpp b/src/mbgl/programs/gl/shaders.cpp
new file mode 100644
index 0000000000..3cc33992de
--- /dev/null
+++ b/src/mbgl/programs/gl/shaders.cpp
@@ -0,0 +1,31 @@
+#include <mbgl/programs/gl/shaders.hpp>
+#include <mbgl/programs/gl/preludes.hpp>
+#include <mbgl/programs/program_parameters.hpp>
+#include <mbgl/util/string.hpp>
+
+#include <cassert>
+
+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<std::string>()(vertexSource));
+ result += util::toHex(std::hash<std::string>()(fragmentSource));
+ result += "v3";
+ return result;
+}
+
+} // namespace gl
+} // namespace programs
+} // namespace mbgl