summaryrefslogtreecommitdiff
path: root/src/mbgl/gl
diff options
context:
space:
mode:
authorKonstantin Käfer <mail@kkaefer.com>2019-03-19 14:02:10 +0100
committerKonstantin Käfer <mail@kkaefer.com>2019-03-20 15:40:47 +0100
commit53ab65d81165daf4e23ce28fa0e42861724ea687 (patch)
tree402a535476210bf3527b487011a0f7ccb78ef73d /src/mbgl/gl
parent0ad2375e1047353fc65fabce3ac9123dc095179e (diff)
downloadqtlocation-mapboxgl-53ab65d81165daf4e23ce28fa0e42861724ea687.tar.gz
[core] use constexpr string concatenation for uniform/attribute names
Diffstat (limited to 'src/mbgl/gl')
-rw-r--r--src/mbgl/gl/attribute.hpp11
-rw-r--r--src/mbgl/gl/texture.hpp10
-rw-r--r--src/mbgl/gl/uniform.hpp11
3 files changed, 21 insertions, 11 deletions
diff --git a/src/mbgl/gl/attribute.hpp b/src/mbgl/gl/attribute.hpp
index 32493d207a..62c89178cd 100644
--- a/src/mbgl/gl/attribute.hpp
+++ b/src/mbgl/gl/attribute.hpp
@@ -3,6 +3,7 @@
#include <mbgl/gfx/attribute.hpp>
#include <mbgl/gl/types.hpp>
#include <mbgl/util/ignore.hpp>
+#include <mbgl/util/literal.hpp>
#include <mbgl/util/indexed_tuple.hpp>
#include <mbgl/util/optional.hpp>
@@ -50,13 +51,15 @@ public:
}
};
- return Locations{ maybeBindLocation(As::attributeName())... };
+ return Locations{ maybeBindLocation(
+ concat_literals<&string_literal<'a', '_'>::value, &As::name>::value())... };
}()) {
}
template <class BinaryProgram>
AttributeLocations(const BinaryProgram& program)
- : locations{ program.attributeLocation(As::attributeName())... } {
+ : locations{ program.attributeLocation(
+ concat_literals<&string_literal<'a', '_'>::value, &As::name>::value())... } {
}
NamedAttributeLocations getNamedLocations() const {
@@ -68,7 +71,9 @@ public:
}
};
- util::ignore({ (maybeAddLocation(As::attributeName(), locations.template get<As>()), 0)... });
+ util::ignore({ (maybeAddLocation(concat_literals<&string_literal<'a', '_'>::value, &As::name>::value(),
+ locations.template get<As>()),
+ 0)... });
return result;
}
diff --git a/src/mbgl/gl/texture.hpp b/src/mbgl/gl/texture.hpp
index 2058ecd495..44b81f9a45 100644
--- a/src/mbgl/gl/texture.hpp
+++ b/src/mbgl/gl/texture.hpp
@@ -2,6 +2,7 @@
#include <mbgl/gfx/texture.hpp>
#include <mbgl/gl/uniform.hpp>
+#include <mbgl/util/literal.hpp>
#include <mbgl/util/ignore.hpp>
#include <vector>
@@ -27,16 +28,19 @@ private:
public:
void queryLocations(const ProgramID& id) {
- state = State{ gl::uniformLocation(id, Ts::uniformName())... };
+ state = State{ gl::uniformLocation(id,
+ concat_literals<&string_literal<'u', '_'>::value, &Ts::name>::value())... };
}
template <class BinaryProgram>
void loadNamedLocations(const BinaryProgram& program) {
- state = State{ program.textureLocation(Ts::uniformName())... };
+ state = State{ program.textureLocation(
+ concat_literals<&string_literal<'u', '_'>::value, &Ts::name>::value())... };
}
NamedUniformLocations getNamedLocations() const {
- return NamedUniformLocations{ { Ts::uniformName(), state.template get<Ts>().location }... };
+ return NamedUniformLocations{ { concat_literals<&string_literal<'u', '_'>::value, &Ts::name>::value(),
+ state.template get<Ts>().location }... };
}
void bind(gl::Context& context, const gfx::TextureBindings<TypeList<Ts...>>& bindings) {
diff --git a/src/mbgl/gl/uniform.hpp b/src/mbgl/gl/uniform.hpp
index 64c83cab6b..89ef675a6b 100644
--- a/src/mbgl/gl/uniform.hpp
+++ b/src/mbgl/gl/uniform.hpp
@@ -3,6 +3,7 @@
#include <mbgl/gfx/uniform.hpp>
#include <mbgl/gl/types.hpp>
#include <mbgl/util/optional.hpp>
+#include <mbgl/util/literal.hpp>
#include <mbgl/util/ignore.hpp>
#include <mbgl/util/indexed_tuple.hpp>
@@ -73,21 +74,21 @@ public:
util::ignore(
{ // Some shader programs have uniforms declared, but not used, so they're not active.
// Therefore, we'll only verify them when they are indeed active.
- (active.find(Us::uniformName()) != active.end()
- ? verifyUniform<typename Us::Value>(active.at(Us::uniformName()))
+ (active.find(concat_literals<&string_literal<'u', '_'>::value, &Us::name>::value()) != active.end()
+ ? verifyUniform<typename Us::Value>(active.at(concat_literals<&string_literal<'u', '_'>::value, &Us::name>::value()))
: false)... });
#endif
- state = State{ gl::uniformLocation(id, Us::uniformName())... };
+ state = State{ gl::uniformLocation(id, concat_literals<&string_literal<'u', '_'>::value, &Us::name>::value())... };
}
template <class BinaryProgram>
void loadNamedLocations(const BinaryProgram& program) {
- state = State{ UniformState<typename Us::Value>(program.uniformLocation(Us::uniformName()))... };
+ state = State{ UniformState<typename Us::Value>(program.uniformLocation(concat_literals<&string_literal<'u', '_'>::value, &Us::name>::value()))... };
}
NamedUniformLocations getNamedLocations() const {
- return NamedUniformLocations{ { Us::uniformName(), state.template get<Us>().location }... };
+ return NamedUniformLocations{ { concat_literals<&string_literal<'u', '_'>::value, &Us::name>::value(), state.template get<Us>().location }... };
}
void bind(const gfx::UniformValues<TypeList<Us...>>& values) {