1 #pragma once
2 
3 #include <mbgl/util/traits.hpp>
4 #include <mbgl/util/util.hpp>
5 
6 #include <cstdint>
7 
8 namespace mbgl {
9 
10 enum class RenderPass : uint8_t {
11     None = 0,
12     Opaque = 1 << 0,
13     Translucent = 1 << 1,
14     Pass3D = 1 << 2,
15 };
16 
operator |(RenderPass a,RenderPass b)17 MBGL_CONSTEXPR RenderPass operator|(RenderPass a, RenderPass b) {
18     return RenderPass(mbgl::underlying_type(a) | mbgl::underlying_type(b));
19 }
20 
operator |=(RenderPass & a,RenderPass b)21 MBGL_CONSTEXPR RenderPass& operator|=(RenderPass& a, RenderPass b) {
22     return (a = a | b);
23 }
24 
operator &(RenderPass a,RenderPass b)25 MBGL_CONSTEXPR RenderPass operator&(RenderPass a, RenderPass b) {
26     return RenderPass(mbgl::underlying_type(a) & mbgl::underlying_type(b));
27 }
28 
29 // Defines whether the overdraw shaders should be used instead of the regular shaders.
30 enum class PaintMode : bool {
31     Regular = false,
32     Overdraw = true,
33 };
34 
35 } // namespace mbgl
36