summaryrefslogtreecommitdiff
path: root/src/mbgl/programs/program_parameters.cpp
diff options
context:
space:
mode:
authorKonstantin Käfer <mail@kkaefer.com>2017-06-05 10:43:34 +0200
committerJohn Firebaugh <john.firebaugh@gmail.com>2017-06-13 12:21:50 -0700
commit18b50f51b4fa14b9f2fe6f865dc47490b22e74c6 (patch)
tree24c28db13a496da6625c6a395bc6cf0d6b5b63ca /src/mbgl/programs/program_parameters.cpp
parent1708b297a7c4eb6287e36837fd1cfe1220c5d97b (diff)
downloadqtlocation-mapboxgl-18b50f51b4fa14b9f2fe6f865dc47490b22e74c6.tar.gz
[core] cleanup ProgramParameters
Diffstat (limited to 'src/mbgl/programs/program_parameters.cpp')
-rw-r--r--src/mbgl/programs/program_parameters.cpp32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/mbgl/programs/program_parameters.cpp b/src/mbgl/programs/program_parameters.cpp
new file mode 100644
index 0000000000..f9f680ac1e
--- /dev/null
+++ b/src/mbgl/programs/program_parameters.cpp
@@ -0,0 +1,32 @@
+#include <mbgl/programs/program_parameters.hpp>
+
+#include <iomanip>
+#include <sstream>
+
+namespace mbgl {
+
+ProgramParameters::ProgramParameters(const float pixelRatio,
+ const bool overdraw,
+ std::string cacheDir_)
+ : defines([&] {
+ std::ostringstream ss;
+ ss.imbue(std::locale("C"));
+ ss.setf(std::ios_base::showpoint);
+ ss << "#define DEVICE_PIXEL_RATIO " << pixelRatio << std::endl;
+ if (overdraw) {
+ ss << "#define OVERDRAW_INSPECTOR" << std::endl;
+ }
+ return ss.str();
+ }()),
+ hash(std::hash<std::string>()(defines)),
+ cacheDir(std::move(cacheDir_)) {
+}
+
+std::string ProgramParameters::cachePath(const char* name) const {
+ std::ostringstream ss;
+ ss << cacheDir << "/com.mapbox.gl.shader." << name << "." << std::setfill('0')
+ << std::setw(sizeof(size_t) * 2) << std::hex << hash << ".pbf";
+ return ss.str();
+}
+
+} // namespace mbgl