summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2019-09-10 16:18:54 +0300
committerMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2019-09-13 13:45:48 +0300
commit796cc3a4d6ce7fd4d857e0985392efccb388dfb1 (patch)
treeb28965df0c17928d146cb383805ca225348f48c6 /src
parentf9c15f708ecf3d87c756a196bdc5de93b78b8cfc (diff)
downloadqtlocation-mapboxgl-796cc3a4d6ce7fd4d857e0985392efccb388dfb1.tar.gz
[core] Bitmask operations for enums
Diffstat (limited to 'src')
-rw-r--r--src/core-files.json1
-rw-r--r--src/mbgl/layout/symbol_instance.hpp15
-rw-r--r--src/mbgl/renderer/render_layer.cpp2
-rw-r--r--src/mbgl/renderer/render_pass.hpp15
-rw-r--r--src/mbgl/text/glyph.hpp21
5 files changed, 5 insertions, 49 deletions
diff --git a/src/core-files.json b/src/core-files.json
index 628ab5e3a7..9453e504bb 100644
--- a/src/core-files.json
+++ b/src/core-files.json
@@ -456,6 +456,7 @@
"mbgl/tile/tile_necessity.hpp": "include/mbgl/tile/tile_necessity.hpp",
"mbgl/util/async_request.hpp": "include/mbgl/util/async_request.hpp",
"mbgl/util/async_task.hpp": "include/mbgl/util/async_task.hpp",
+ "mbgl/util/bitmask_operations.hpp": "include/mbgl/util/bitmask_operations.hpp",
"mbgl/util/char_array_buffer.hpp": "include/mbgl/util/char_array_buffer.hpp",
"mbgl/util/chrono.hpp": "include/mbgl/util/chrono.hpp",
"mbgl/util/color.hpp": "include/mbgl/util/color.hpp",
diff --git a/src/mbgl/layout/symbol_instance.hpp b/src/mbgl/layout/symbol_instance.hpp
index 3e2ab5f8b3..4a57b527f7 100644
--- a/src/mbgl/layout/symbol_instance.hpp
+++ b/src/mbgl/layout/symbol_instance.hpp
@@ -4,8 +4,7 @@
#include <mbgl/text/glyph_atlas.hpp>
#include <mbgl/text/collision_feature.hpp>
#include <mbgl/style/layers/symbol_layer_properties.hpp>
-#include <mbgl/util/traits.hpp>
-#include <mbgl/util/util.hpp>
+#include <mbgl/util/bitmask_operations.hpp>
namespace mbgl {
@@ -50,18 +49,6 @@ enum class SymbolContent : uint8_t {
IconSDF = 1 << 2
};
-MBGL_CONSTEXPR SymbolContent operator|(SymbolContent a, SymbolContent b) {
- return SymbolContent(mbgl::underlying_type(a) | mbgl::underlying_type(b));
-}
-
-MBGL_CONSTEXPR SymbolContent& operator|=(SymbolContent& a, SymbolContent b) {
- return (a = a | b);
-}
-
-MBGL_CONSTEXPR SymbolContent operator&(SymbolContent a, SymbolContent b) {
- return SymbolContent(mbgl::underlying_type(a) & mbgl::underlying_type(b));
-}
-
class SymbolInstance {
public:
SymbolInstance(Anchor& anchor_,
diff --git a/src/mbgl/renderer/render_layer.cpp b/src/mbgl/renderer/render_layer.cpp
index c1ca1fd017..fe1b151b58 100644
--- a/src/mbgl/renderer/render_layer.cpp
+++ b/src/mbgl/renderer/render_layer.cpp
@@ -32,7 +32,7 @@ const std::string& RenderLayer::getID() const {
}
bool RenderLayer::hasRenderPass(RenderPass pass) const {
- return bool(passes & pass);
+ return passes & pass;
}
bool RenderLayer::needsRendering() const {
diff --git a/src/mbgl/renderer/render_pass.hpp b/src/mbgl/renderer/render_pass.hpp
index 5d18304129..4d1b1f91f9 100644
--- a/src/mbgl/renderer/render_pass.hpp
+++ b/src/mbgl/renderer/render_pass.hpp
@@ -1,7 +1,6 @@
#pragma once
-#include <mbgl/util/traits.hpp>
-#include <mbgl/util/util.hpp>
+#include <mbgl/util/bitmask_operations.hpp>
#include <cstdint>
@@ -14,18 +13,6 @@ enum class RenderPass : uint8_t {
Pass3D = 1 << 2,
};
-MBGL_CONSTEXPR RenderPass operator|(RenderPass a, RenderPass b) {
- return RenderPass(mbgl::underlying_type(a) | mbgl::underlying_type(b));
-}
-
-MBGL_CONSTEXPR RenderPass& operator|=(RenderPass& a, RenderPass b) {
- return (a = a | b);
-}
-
-MBGL_CONSTEXPR RenderPass operator&(RenderPass a, RenderPass b) {
- return RenderPass(mbgl::underlying_type(a) & mbgl::underlying_type(b));
-}
-
// Defines whether the overdraw shaders should be used instead of the regular shaders.
enum class PaintMode : bool {
Regular = false,
diff --git a/src/mbgl/text/glyph.hpp b/src/mbgl/text/glyph.hpp
index 234f718975..ba9c521f77 100644
--- a/src/mbgl/text/glyph.hpp
+++ b/src/mbgl/text/glyph.hpp
@@ -1,6 +1,7 @@
#pragma once
#include <mbgl/text/glyph_range.hpp>
+#include <mbgl/util/bitmask_operations.hpp>
#include <mbgl/util/font_stack.hpp>
#include <mbgl/util/rect.hpp>
#include <mbgl/util/traits.hpp>
@@ -99,26 +100,6 @@ enum class WritingModeType : uint8_t {
Vertical = 1 << 1,
};
-MBGL_CONSTEXPR WritingModeType operator|(WritingModeType a, WritingModeType b) {
- return WritingModeType(mbgl::underlying_type(a) | mbgl::underlying_type(b));
-}
-
-MBGL_CONSTEXPR WritingModeType& operator|=(WritingModeType& a, WritingModeType b) {
- return (a = a | b);
-}
-
-MBGL_CONSTEXPR bool operator&(WritingModeType lhs, WritingModeType rhs) {
- return mbgl::underlying_type(lhs) & mbgl::underlying_type(rhs);
-}
-
-MBGL_CONSTEXPR WritingModeType& operator&=(WritingModeType& lhs, WritingModeType rhs) {
- return (lhs = WritingModeType(mbgl::underlying_type(lhs) & mbgl::underlying_type(rhs)));
-}
-
-MBGL_CONSTEXPR WritingModeType operator~(WritingModeType value) {
- return WritingModeType(~mbgl::underlying_type(value));
-}
-
using GlyphDependencies = std::map<FontStack, GlyphIDs>;
using GlyphRangeDependencies = std::map<FontStack, std::unordered_set<GlyphRange>>;