diff options
author | Konstantin Käfer <mail@kkaefer.com> | 2019-03-19 14:02:10 +0100 |
---|---|---|
committer | Konstantin Käfer <mail@kkaefer.com> | 2019-03-20 15:40:47 +0100 |
commit | 53ab65d81165daf4e23ce28fa0e42861724ea687 (patch) | |
tree | 402a535476210bf3527b487011a0f7ccb78ef73d /src/mbgl/gl | |
parent | 0ad2375e1047353fc65fabce3ac9123dc095179e (diff) | |
download | qtlocation-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.hpp | 11 | ||||
-rw-r--r-- | src/mbgl/gl/texture.hpp | 10 | ||||
-rw-r--r-- | src/mbgl/gl/uniform.hpp | 11 |
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) { |