summaryrefslogtreecommitdiff
path: root/src/mbgl
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl')
-rw-r--r--src/mbgl/programs/background_program.hpp2
-rw-r--r--src/mbgl/programs/circle_program.hpp1
-rw-r--r--src/mbgl/programs/clipping_mask_program.hpp1
-rw-r--r--src/mbgl/programs/collision_box_program.hpp2
-rw-r--r--src/mbgl/programs/debug_program.hpp1
-rw-r--r--src/mbgl/programs/extrusion_texture_program.hpp1
-rw-r--r--src/mbgl/programs/fill_extrusion_program.hpp2
-rw-r--r--src/mbgl/programs/fill_program.hpp4
-rw-r--r--src/mbgl/programs/heatmap_program.hpp1
-rw-r--r--src/mbgl/programs/heatmap_texture_program.hpp1
-rw-r--r--src/mbgl/programs/hillshade_prepare_program.hpp1
-rw-r--r--src/mbgl/programs/hillshade_program.hpp1
-rw-r--r--src/mbgl/programs/line_program.hpp4
-rw-r--r--src/mbgl/programs/program.hpp3
-rw-r--r--src/mbgl/programs/raster_program.hpp1
-rw-r--r--src/mbgl/programs/symbol_program.cpp12
-rw-r--r--src/mbgl/programs/symbol_program.hpp22
17 files changed, 48 insertions, 12 deletions
diff --git a/src/mbgl/programs/background_program.hpp b/src/mbgl/programs/background_program.hpp
index 6bcdde1ef3..a8bcd9dc3c 100644
--- a/src/mbgl/programs/background_program.hpp
+++ b/src/mbgl/programs/background_program.hpp
@@ -45,6 +45,7 @@ using BackgroundPatternUniforms = TypeList<
uniforms::u_tile_units_to_pixels>;
class BackgroundProgram : public Program<
+ BackgroundProgram,
shaders::background,
gfx::PrimitiveType::Triangle,
BackgroundLayoutAttributes,
@@ -57,6 +58,7 @@ public:
};
class BackgroundPatternProgram : public Program<
+ BackgroundPatternProgram,
shaders::background_pattern,
gfx::PrimitiveType::Triangle,
BackgroundLayoutAttributes,
diff --git a/src/mbgl/programs/circle_program.hpp b/src/mbgl/programs/circle_program.hpp
index 96f630188c..136a6f89cf 100644
--- a/src/mbgl/programs/circle_program.hpp
+++ b/src/mbgl/programs/circle_program.hpp
@@ -14,6 +14,7 @@ MBGL_DEFINE_UNIFORM_SCALAR(bool, u_scale_with_map);
} // namespace uniforms
class CircleProgram : public Program<
+ CircleProgram,
shaders::circle,
gfx::PrimitiveType::Triangle,
TypeList<
diff --git a/src/mbgl/programs/clipping_mask_program.hpp b/src/mbgl/programs/clipping_mask_program.hpp
index fe82ea66df..687b76fcb9 100644
--- a/src/mbgl/programs/clipping_mask_program.hpp
+++ b/src/mbgl/programs/clipping_mask_program.hpp
@@ -9,6 +9,7 @@
namespace mbgl {
class ClippingMaskProgram : public Program<
+ ClippingMaskProgram,
shaders::clipping_mask,
gfx::PrimitiveType::Triangle,
PositionOnlyLayoutAttributes,
diff --git a/src/mbgl/programs/collision_box_program.hpp b/src/mbgl/programs/collision_box_program.hpp
index ce536ff491..2434324299 100644
--- a/src/mbgl/programs/collision_box_program.hpp
+++ b/src/mbgl/programs/collision_box_program.hpp
@@ -21,6 +21,7 @@ using CollisionBoxLayoutAttributes = TypeList<
using CollisionBoxDynamicAttributes = TypeList<attributes::a_placed>;
class CollisionBoxProgram : public Program<
+ CollisionBoxProgram,
shaders::collision_box,
gfx::PrimitiveType::Line,
TypeListConcat<CollisionBoxLayoutAttributes, CollisionBoxDynamicAttributes>,
@@ -114,6 +115,7 @@ public:
class CollisionCircleProgram : public Program<
+ CollisionCircleProgram,
shaders::collision_circle,
gfx::PrimitiveType::Triangle,
TypeListConcat<CollisionBoxLayoutAttributes, CollisionBoxDynamicAttributes>,
diff --git a/src/mbgl/programs/debug_program.hpp b/src/mbgl/programs/debug_program.hpp
index e42fa565b2..f1b814d5e0 100644
--- a/src/mbgl/programs/debug_program.hpp
+++ b/src/mbgl/programs/debug_program.hpp
@@ -9,6 +9,7 @@
namespace mbgl {
class DebugProgram : public Program<
+ DebugProgram,
shaders::debug,
gfx::PrimitiveType::Line,
TypeList<
diff --git a/src/mbgl/programs/extrusion_texture_program.hpp b/src/mbgl/programs/extrusion_texture_program.hpp
index e2977a36cb..eb97b9e11f 100644
--- a/src/mbgl/programs/extrusion_texture_program.hpp
+++ b/src/mbgl/programs/extrusion_texture_program.hpp
@@ -11,6 +11,7 @@
namespace mbgl {
class ExtrusionTextureProgram : public Program<
+ ExtrusionTextureProgram,
shaders::extrusion_texture,
gfx::PrimitiveType::Triangle,
TypeList<attributes::a_pos>,
diff --git a/src/mbgl/programs/fill_extrusion_program.hpp b/src/mbgl/programs/fill_extrusion_program.hpp
index 28ce2ec691..23a38e2469 100644
--- a/src/mbgl/programs/fill_extrusion_program.hpp
+++ b/src/mbgl/programs/fill_extrusion_program.hpp
@@ -53,6 +53,7 @@ using FillExtrusionPatternUniforms = TypeList<
uniforms::u_lightintensity>;
class FillExtrusionProgram : public Program<
+ FillExtrusionProgram,
shaders::fill_extrusion,
gfx::PrimitiveType::Triangle,
FillExtrusionLayoutAttributes,
@@ -88,6 +89,7 @@ public:
};
class FillExtrusionPatternProgram : public Program<
+ FillExtrusionPatternProgram,
shaders::fill_extrusion_pattern,
gfx::PrimitiveType::Triangle,
FillExtrusionLayoutAttributes,
diff --git a/src/mbgl/programs/fill_program.hpp b/src/mbgl/programs/fill_program.hpp
index e469e416ef..5778dfe2d9 100644
--- a/src/mbgl/programs/fill_program.hpp
+++ b/src/mbgl/programs/fill_program.hpp
@@ -38,6 +38,7 @@ using FillPatternUniforms = TypeList<
uniforms::u_pixel_coord_lower>;
class FillProgram : public Program<
+ FillProgram,
shaders::fill,
gfx::PrimitiveType::Triangle,
FillLayoutAttributes,
@@ -59,6 +60,7 @@ public:
};
class FillPatternProgram : public Program<
+ FillPatternProgram,
shaders::fill_pattern,
gfx::PrimitiveType::Triangle,
FillLayoutAttributes,
@@ -80,6 +82,7 @@ public:
};
class FillOutlineProgram : public Program<
+ FillOutlineProgram,
shaders::fill_outline,
gfx::PrimitiveType::Line,
FillLayoutAttributes,
@@ -92,6 +95,7 @@ public:
};
class FillOutlinePatternProgram : public Program<
+ FillOutlinePatternProgram,
shaders::fill_outline_pattern,
gfx::PrimitiveType::Line,
FillLayoutAttributes,
diff --git a/src/mbgl/programs/heatmap_program.hpp b/src/mbgl/programs/heatmap_program.hpp
index 6c83862e28..9e8b9c5357 100644
--- a/src/mbgl/programs/heatmap_program.hpp
+++ b/src/mbgl/programs/heatmap_program.hpp
@@ -15,6 +15,7 @@ MBGL_DEFINE_UNIFORM_SCALAR(float, u_intensity);
} // namespace uniforms
class HeatmapProgram : public Program<
+ HeatmapProgram,
shaders::heatmap,
gfx::PrimitiveType::Triangle,
TypeList<
diff --git a/src/mbgl/programs/heatmap_texture_program.hpp b/src/mbgl/programs/heatmap_texture_program.hpp
index 46f9fc1b89..d718d6961a 100644
--- a/src/mbgl/programs/heatmap_texture_program.hpp
+++ b/src/mbgl/programs/heatmap_texture_program.hpp
@@ -11,6 +11,7 @@
namespace mbgl {
class HeatmapTextureProgram : public Program<
+ HeatmapTextureProgram,
shaders::heatmap_texture,
gfx::PrimitiveType::Triangle,
TypeList<attributes::a_pos>,
diff --git a/src/mbgl/programs/hillshade_prepare_program.hpp b/src/mbgl/programs/hillshade_prepare_program.hpp
index fb2b8daebb..9560a4acb0 100644
--- a/src/mbgl/programs/hillshade_prepare_program.hpp
+++ b/src/mbgl/programs/hillshade_prepare_program.hpp
@@ -15,6 +15,7 @@ MBGL_DEFINE_UNIFORM_SCALAR(float, u_maxzoom);
} // namespace uniforms
class HillshadePrepareProgram : public Program<
+ HillshadePrepareProgram,
shaders::hillshade_prepare,
gfx::PrimitiveType::Triangle,
TypeList<
diff --git a/src/mbgl/programs/hillshade_program.hpp b/src/mbgl/programs/hillshade_program.hpp
index 8def03505b..a82220ed51 100644
--- a/src/mbgl/programs/hillshade_program.hpp
+++ b/src/mbgl/programs/hillshade_program.hpp
@@ -20,6 +20,7 @@ MBGL_DEFINE_UNIFORM_VECTOR(float, 2, u_latrange);
} // namespace uniforms
class HillshadeProgram : public Program<
+ HillshadeProgram,
shaders::hillshade,
gfx::PrimitiveType::Triangle,
TypeList<
diff --git a/src/mbgl/programs/line_program.hpp b/src/mbgl/programs/line_program.hpp
index f98eb0b0d3..a325e9f5fd 100644
--- a/src/mbgl/programs/line_program.hpp
+++ b/src/mbgl/programs/line_program.hpp
@@ -35,6 +35,7 @@ using LineLayoutAttributes = TypeList<
attributes::a_data<uint8_t, 4>>;
class LineProgram : public Program<
+ LineProgram,
shaders::line,
gfx::PrimitiveType::Triangle,
LineLayoutAttributes,
@@ -101,6 +102,7 @@ public:
};
class LinePatternProgram : public Program<
+ LinePatternProgram,
shaders::line_pattern,
gfx::PrimitiveType::Triangle,
LineLayoutAttributes,
@@ -129,6 +131,7 @@ public:
};
class LineSDFProgram : public Program<
+ LineSDFProgram,
shaders::line_sdf,
gfx::PrimitiveType::Triangle,
LineLayoutAttributes,
@@ -162,6 +165,7 @@ public:
};
class LineGradientProgram : public Program<
+ LineGradientProgram,
shaders::line_gradient,
gfx::PrimitiveType::Triangle,
LineLayoutAttributes,
diff --git a/src/mbgl/programs/program.hpp b/src/mbgl/programs/program.hpp
index 917947c95c..351bf5bbb1 100644
--- a/src/mbgl/programs/program.hpp
+++ b/src/mbgl/programs/program.hpp
@@ -15,7 +15,8 @@
namespace mbgl {
-template <class Shaders,
+template <class Name,
+ class Shaders,
gfx::PrimitiveType Primitive,
class LayoutAttributeList,
class LayoutUniformList,
diff --git a/src/mbgl/programs/raster_program.hpp b/src/mbgl/programs/raster_program.hpp
index 48115de6fe..da3676b542 100644
--- a/src/mbgl/programs/raster_program.hpp
+++ b/src/mbgl/programs/raster_program.hpp
@@ -23,6 +23,7 @@ MBGL_DEFINE_UNIFORM_VECTOR(float, 2, u_tl_parent);
} // namespace uniforms
class RasterProgram : public Program<
+ RasterProgram,
shaders::raster,
gfx::PrimitiveType::Triangle,
TypeList<
diff --git a/src/mbgl/programs/symbol_program.cpp b/src/mbgl/programs/symbol_program.cpp
index ca003103fd..3baac795ab 100644
--- a/src/mbgl/programs/symbol_program.cpp
+++ b/src/mbgl/programs/symbol_program.cpp
@@ -120,9 +120,9 @@ SymbolIconProgram::layoutUniformValues(const bool isText,
);
}
-template <class PaintProperties>
-typename SymbolSDFProgram<PaintProperties>::LayoutUniformValues
-SymbolSDFProgram<PaintProperties>::layoutUniformValues(const bool isText,
+template <class Name, class PaintProperties>
+typename SymbolSDFProgram<Name, PaintProperties>::LayoutUniformValues
+SymbolSDFProgram<Name, PaintProperties>::layoutUniformValues(const bool isText,
const style::SymbolPropertyValues& values,
const Size& texsize,
const std::array<float, 2>& pixelsToGLUnits,
@@ -135,7 +135,7 @@ SymbolSDFProgram<PaintProperties>::layoutUniformValues(const bool isText,
? std::cos(state.getPitch()) * state.getCameraToCenterDistance()
: 1.0);
- return makeValues<SymbolSDFProgram<PaintProperties>::LayoutUniformValues>(
+ return makeValues<SymbolSDFProgram<Name, PaintProperties>::LayoutUniformValues>(
isText,
values,
texsize,
@@ -149,7 +149,7 @@ SymbolSDFProgram<PaintProperties>::layoutUniformValues(const bool isText,
);
}
-template class SymbolSDFProgram<style::IconPaintProperties>;
-template class SymbolSDFProgram<style::TextPaintProperties>;
+template class SymbolSDFProgram<SymbolSDFIconProgram, style::IconPaintProperties>;
+template class SymbolSDFProgram<SymbolSDFTextProgram, style::TextPaintProperties>;
} // namespace mbgl
diff --git a/src/mbgl/programs/symbol_program.hpp b/src/mbgl/programs/symbol_program.hpp
index 3ed8325817..2a5fff53ca 100644
--- a/src/mbgl/programs/symbol_program.hpp
+++ b/src/mbgl/programs/symbol_program.hpp
@@ -239,7 +239,8 @@ public:
}
};
-template <class Shaders,
+template <class Name,
+ class Shaders,
gfx::PrimitiveType Primitive,
class LayoutAttributeList,
class LayoutUniformList,
@@ -347,6 +348,7 @@ public:
};
class SymbolIconProgram : public SymbolProgram<
+ SymbolIconProgram,
shaders::symbol_icon,
gfx::PrimitiveType::Triangle,
SymbolLayoutAttributes,
@@ -385,8 +387,9 @@ enum class SymbolSDFPart {
Halo = 0
};
-template <class PaintProperties>
+template <class Name, class PaintProperties>
class SymbolSDFProgram : public SymbolProgram<
+ Name,
shaders::symbol_sdf,
gfx::PrimitiveType::Triangle,
SymbolLayoutAttributes,
@@ -410,7 +413,9 @@ class SymbolSDFProgram : public SymbolProgram<
PaintProperties>
{
public:
- using BaseProgram = SymbolProgram<shaders::symbol_sdf,
+ using BaseProgram = SymbolProgram<
+ Name,
+ shaders::symbol_sdf,
gfx::PrimitiveType::Triangle,
SymbolLayoutAttributes,
TypeList<
@@ -449,8 +454,15 @@ public:
const SymbolSDFPart);
};
-using SymbolSDFIconProgram = SymbolSDFProgram<style::IconPaintProperties>;
-using SymbolSDFTextProgram = SymbolSDFProgram<style::TextPaintProperties>;
+class SymbolSDFIconProgram : public SymbolSDFProgram<SymbolSDFIconProgram, style::IconPaintProperties> {
+public:
+ using SymbolSDFProgram::SymbolSDFProgram;
+};
+
+class SymbolSDFTextProgram : public SymbolSDFProgram<SymbolSDFTextProgram, style::TextPaintProperties> {
+public:
+ using SymbolSDFProgram::SymbolSDFProgram;
+};
using SymbolLayoutVertex = gfx::Vertex<SymbolLayoutAttributes>;
using SymbolIconAttributes = SymbolIconProgram::AttributeList;