diff options
author | Konstantin Käfer <mail@kkaefer.com> | 2019-03-15 20:31:12 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-03-15 20:31:12 +0100 |
commit | c8cfdb1ced822711e772dfcc8f708b1a7a68b5fc (patch) | |
tree | bf511253e25459cafc91a5f3bea2f5c773677162 /src/mbgl/renderer | |
parent | 62695c56956add5560933137a479f29f2d3a091b (diff) | |
download | qtlocation-mapboxgl-c8cfdb1ced822711e772dfcc8f708b1a7a68b5fc.tar.gz |
Merge pull request #14126 from mapbox/gfx-refactor-4
Graphics refactor #4
Diffstat (limited to 'src/mbgl/renderer')
18 files changed, 75 insertions, 57 deletions
diff --git a/src/mbgl/renderer/buckets/hillshade_bucket.cpp b/src/mbgl/renderer/buckets/hillshade_bucket.cpp index 588e4e50b1..3c14845dd8 100644 --- a/src/mbgl/renderer/buckets/hillshade_bucket.cpp +++ b/src/mbgl/renderer/buckets/hillshade_bucket.cpp @@ -2,7 +2,7 @@ #include <mbgl/renderer/layers/render_hillshade_layer.hpp> #include <mbgl/programs/hillshade_program.hpp> #include <mbgl/programs/hillshade_prepare_program.hpp> -#include <mbgl/gl/context.hpp> +#include <mbgl/gfx/context.hpp> namespace mbgl { diff --git a/src/mbgl/renderer/buckets/raster_bucket.cpp b/src/mbgl/renderer/buckets/raster_bucket.cpp index bf6dffbf17..a8cb47d52c 100644 --- a/src/mbgl/renderer/buckets/raster_bucket.cpp +++ b/src/mbgl/renderer/buckets/raster_bucket.cpp @@ -1,7 +1,7 @@ #include <mbgl/renderer/buckets/raster_bucket.hpp> #include <mbgl/renderer/layers/render_raster_layer.hpp> #include <mbgl/programs/raster_program.hpp> -#include <mbgl/gl/context.hpp> +#include <mbgl/gfx/context.hpp> namespace mbgl { diff --git a/src/mbgl/renderer/buckets/symbol_bucket.hpp b/src/mbgl/renderer/buckets/symbol_bucket.hpp index 9764d870da..fafa2592fe 100644 --- a/src/mbgl/renderer/buckets/symbol_bucket.hpp +++ b/src/mbgl/renderer/buckets/symbol_bucket.hpp @@ -114,7 +114,7 @@ public: struct CollisionBuffer { gfx::VertexVector<gfx::Vertex<CollisionBoxLayoutAttributes>> vertices; gfx::VertexVector<gfx::Vertex<CollisionBoxDynamicAttributes>> dynamicVertices; - SegmentVector<CollisionBoxProgram::Attributes> segments; + SegmentVector<CollisionBoxProgram::AttributeList> segments; optional<gfx::VertexBuffer<gfx::Vertex<CollisionBoxLayoutAttributes>>> vertexBuffer; optional<gfx::VertexBuffer<gfx::Vertex<CollisionBoxDynamicAttributes>>> dynamicVertexBuffer; diff --git a/src/mbgl/renderer/layers/render_background_layer.cpp b/src/mbgl/renderer/layers/render_background_layer.cpp index ae89a08cac..32e05a38ab 100644 --- a/src/mbgl/renderer/layers/render_background_layer.cpp +++ b/src/mbgl/renderer/layers/render_background_layer.cpp @@ -8,6 +8,7 @@ #include <mbgl/programs/background_program.hpp> #include <mbgl/util/tile_cover.hpp> #include <mbgl/map/transform_state.hpp> +#include <mbgl/gfx/cull_face_mode.hpp> #include <mbgl/gl/context.hpp> namespace mbgl { @@ -91,7 +92,7 @@ void RenderBackgroundLayer::render(PaintParameters& parameters, RenderSource*) { for (const auto& tileID : util::tileCover(parameters.state, parameters.state.getIntegerZoom())) { draw( parameters.programs.getBackgroundLayerPrograms().backgroundPattern, - BackgroundPatternProgram::uniformValues( + BackgroundPatternProgram::layoutUniformValues( parameters.matrixForTile(tileID), evaluated.get<BackgroundOpacity>(), parameters.imageManager.getPixelSize(), @@ -110,7 +111,7 @@ void RenderBackgroundLayer::render(PaintParameters& parameters, RenderSource*) { for (const auto& tileID : util::tileCover(parameters.state, parameters.state.getIntegerZoom())) { draw( parameters.programs.getBackgroundLayerPrograms().background, - BackgroundProgram::UniformValues { + BackgroundProgram::LayoutUniformValues { uniforms::u_matrix::Value( parameters.matrixForTile(tileID) ), uniforms::u_color::Value( evaluated.get<BackgroundColor>() ), uniforms::u_opacity::Value( evaluated.get<BackgroundOpacity>() ), diff --git a/src/mbgl/renderer/layers/render_circle_layer.cpp b/src/mbgl/renderer/layers/render_circle_layer.cpp index 32ee24551c..60a3bf8e01 100644 --- a/src/mbgl/renderer/layers/render_circle_layer.cpp +++ b/src/mbgl/renderer/layers/render_circle_layer.cpp @@ -7,6 +7,8 @@ #include <mbgl/tile/tile.hpp> #include <mbgl/style/layers/circle_layer_impl.hpp> #include <mbgl/geometry/feature_index.hpp> +#include <mbgl/gfx/cull_face_mode.hpp> +#include <mbgl/gl/context.hpp> #include <mbgl/util/math.hpp> #include <mbgl/util/intersection_tests.hpp> @@ -67,7 +69,7 @@ void RenderCircleLayer::render(PaintParameters& parameters, RenderSource*) { auto& programInstance = parameters.programs.getCircleLayerPrograms().circle.get(evaluated); const auto allUniformValues = programInstance.computeAllUniformValues( - CircleProgram::UniformValues { + CircleProgram::LayoutUniformValues { uniforms::u_matrix::Value( tile.translatedMatrix(evaluated.get<CircleTranslate>(), evaluated.get<CircleTranslateAnchor>(), diff --git a/src/mbgl/renderer/layers/render_fill_extrusion_layer.cpp b/src/mbgl/renderer/layers/render_fill_extrusion_layer.cpp index 08f35f1c76..5af4732aa3 100644 --- a/src/mbgl/renderer/layers/render_fill_extrusion_layer.cpp +++ b/src/mbgl/renderer/layers/render_fill_extrusion_layer.cpp @@ -13,6 +13,7 @@ #include <mbgl/util/math.hpp> #include <mbgl/util/intersection_tests.hpp> #include <mbgl/tile/geometry_tile.hpp> +#include <mbgl/gfx/cull_face_mode.hpp> #include <mbgl/gl/context.hpp> namespace mbgl { @@ -117,7 +118,7 @@ void RenderFillExtrusionLayer::render(PaintParameters& parameters, RenderSource* draw( parameters.programs.getFillExtrusionLayerPrograms().fillExtrusion.get(evaluated), bucket, - FillExtrusionProgram::uniformValues( + FillExtrusionProgram::layoutUniformValues( tile.translatedClipMatrix(evaluated.get<FillExtrusionTranslate>(), evaluated.get<FillExtrusionTranslateAnchor>(), parameters.state), @@ -144,7 +145,7 @@ void RenderFillExtrusionLayer::render(PaintParameters& parameters, RenderSource* draw( parameters.programs.getFillExtrusionLayerPrograms().fillExtrusionPattern.get(evaluated), bucket, - FillExtrusionPatternProgram::uniformValues( + FillExtrusionPatternProgram::layoutUniformValues( tile.translatedClipMatrix(evaluated.get<FillExtrusionTranslate>(), evaluated.get<FillExtrusionTranslateAnchor>(), parameters.state), @@ -177,7 +178,7 @@ void RenderFillExtrusionLayer::render(PaintParameters& parameters, RenderSource* auto& programInstance = parameters.programs.getFillExtrusionLayerPrograms().extrusionTexture; const auto allUniformValues = programInstance.computeAllUniformValues( - ExtrusionTextureProgram::UniformValues{ + ExtrusionTextureProgram::LayoutUniformValues{ uniforms::u_matrix::Value( viewportMat ), uniforms::u_world::Value( size ), uniforms::u_opacity::Value( evaluated.get<FillExtrusionOpacity>() ) diff --git a/src/mbgl/renderer/layers/render_fill_layer.cpp b/src/mbgl/renderer/layers/render_fill_layer.cpp index 83989fa012..64f3448c69 100644 --- a/src/mbgl/renderer/layers/render_fill_layer.cpp +++ b/src/mbgl/renderer/layers/render_fill_layer.cpp @@ -8,6 +8,8 @@ #include <mbgl/tile/tile.hpp> #include <mbgl/style/layers/fill_layer_impl.hpp> #include <mbgl/geometry/feature_index.hpp> +#include <mbgl/gfx/cull_face_mode.hpp> +#include <mbgl/gl/context.hpp> #include <mbgl/util/math.hpp> #include <mbgl/util/intersection_tests.hpp> #include <mbgl/tile/geometry_tile.hpp> @@ -80,7 +82,7 @@ void RenderFillLayer::render(PaintParameters& parameters, RenderSource*) { const auto& paintPropertyBinders = bucket.paintPropertyBinders.at(getID()); const auto allUniformValues = programInstance.computeAllUniformValues( - FillProgram::UniformValues { + FillProgram::LayoutUniformValues { uniforms::u_matrix::Value( tile.translatedMatrix(evaluated.get<FillTranslate>(), evaluated.get<FillTranslateAnchor>(), @@ -169,7 +171,7 @@ void RenderFillLayer::render(PaintParameters& parameters, RenderSource*) { paintPropertyBinders.setPatternParameters(patternPosA, patternPosB, crossfade); const auto allUniformValues = programInstance.computeAllUniformValues( - FillPatternProgram::uniformValues( + FillPatternProgram::layoutUniformValues( tile.translatedMatrix(evaluated.get<FillTranslate>(), evaluated.get<FillTranslateAnchor>(), parameters.state), diff --git a/src/mbgl/renderer/layers/render_heatmap_layer.cpp b/src/mbgl/renderer/layers/render_heatmap_layer.cpp index 74b976658e..efc16fb28a 100644 --- a/src/mbgl/renderer/layers/render_heatmap_layer.cpp +++ b/src/mbgl/renderer/layers/render_heatmap_layer.cpp @@ -9,6 +9,8 @@ #include <mbgl/style/layers/heatmap_layer.hpp> #include <mbgl/style/layers/heatmap_layer_impl.hpp> #include <mbgl/geometry/feature_index.hpp> +#include <mbgl/gfx/cull_face_mode.hpp> +#include <mbgl/gl/context.hpp> #include <mbgl/util/math.hpp> #include <mbgl/util/intersection_tests.hpp> @@ -100,7 +102,7 @@ void RenderHeatmapLayer::render(PaintParameters& parameters, RenderSource*) { auto& programInstance = parameters.programs.getHeatmapLayerPrograms().heatmap.get(evaluated); const auto allUniformValues = programInstance.computeAllUniformValues( - HeatmapProgram::UniformValues { + HeatmapProgram::LayoutUniformValues { uniforms::u_intensity::Value( evaluated.get<style::HeatmapIntensity>() ), uniforms::u_matrix::Value( tile.matrix ), uniforms::heatmap::u_extrude_scale::Value( extrudeScale ) @@ -145,8 +147,9 @@ void RenderHeatmapLayer::render(PaintParameters& parameters, RenderSource*) { auto& programInstance = parameters.programs.getHeatmapLayerPrograms().heatmapTexture; const auto allUniformValues = programInstance.computeAllUniformValues( - HeatmapTextureProgram::UniformValues{ - uniforms::u_matrix::Value( viewportMat ), uniforms::u_world::Value( size ), + HeatmapTextureProgram::LayoutUniformValues{ + uniforms::u_matrix::Value( viewportMat ), + uniforms::u_world::Value( size ), uniforms::u_opacity::Value( evaluated.get<HeatmapOpacity>() ) }, paintAttributeData, diff --git a/src/mbgl/renderer/layers/render_hillshade_layer.cpp b/src/mbgl/renderer/layers/render_hillshade_layer.cpp index b428e357e7..00ecad444c 100644 --- a/src/mbgl/renderer/layers/render_hillshade_layer.cpp +++ b/src/mbgl/renderer/layers/render_hillshade_layer.cpp @@ -9,6 +9,8 @@ #include <mbgl/programs/hillshade_prepare_program.hpp> #include <mbgl/tile/tile.hpp> #include <mbgl/style/layers/hillshade_layer_impl.hpp> +#include <mbgl/gfx/cull_face_mode.hpp> +#include <mbgl/gl/context.hpp> #include <mbgl/util/geo.hpp> #include <mbgl/util/offscreen_texture.hpp> @@ -74,7 +76,7 @@ void RenderHillshadeLayer::render(PaintParameters& parameters, RenderSource* src const HillshadeProgram::Binders paintAttributeData{ evaluated, 0 }; const auto allUniformValues = programInstance.computeAllUniformValues( - HillshadeProgram::UniformValues { + HillshadeProgram::LayoutUniformValues { uniforms::u_matrix::Value( matrix ), uniforms::u_highlight::Value( evaluated.get<HillshadeHighlightColor>() ), uniforms::u_shadow::Value( evaluated.get<HillshadeShadowColor>() ), @@ -138,7 +140,7 @@ void RenderHillshadeLayer::render(PaintParameters& parameters, RenderSource* src auto& programInstance = parameters.programs.getHillshadeLayerPrograms().hillshadePrepare; const auto allUniformValues = programInstance.computeAllUniformValues( - HillshadePrepareProgram::UniformValues { + HillshadePrepareProgram::LayoutUniformValues { uniforms::u_matrix::Value( mat ), uniforms::u_dimension::Value( {{stride, stride}} ), uniforms::u_zoom::Value( float(tile.id.canonical.z) ), diff --git a/src/mbgl/renderer/layers/render_line_layer.cpp b/src/mbgl/renderer/layers/render_line_layer.cpp index 096afadf7d..eee151ccaa 100644 --- a/src/mbgl/renderer/layers/render_line_layer.cpp +++ b/src/mbgl/renderer/layers/render_line_layer.cpp @@ -8,6 +8,8 @@ #include <mbgl/geometry/line_atlas.hpp> #include <mbgl/tile/tile.hpp> #include <mbgl/style/layers/line_layer_impl.hpp> +#include <mbgl/gfx/cull_face_mode.hpp> +#include <mbgl/gl/context.hpp> #include <mbgl/geometry/feature_index.hpp> #include <mbgl/util/math.hpp> #include <mbgl/util/intersection_tests.hpp> @@ -110,7 +112,7 @@ void RenderLineLayer::render(PaintParameters& parameters, RenderSource*) { LinePatternPos posB = parameters.lineAtlas.getDashPosition(evaluated.get<LineDasharray>().to, cap); draw(parameters.programs.getLineLayerPrograms().lineSDF, - LineSDFProgram::uniformValues( + LineSDFProgram::layoutUniformValues( evaluated, parameters.pixelRatio, tile, @@ -135,7 +137,7 @@ void RenderLineLayer::render(PaintParameters& parameters, RenderSource*) { optional<ImagePosition> posB = geometryTile.getPattern(linePatternValue.to); draw(parameters.programs.getLineLayerPrograms().linePattern, - LinePatternProgram::uniformValues( + LinePatternProgram::layoutUniformValues( evaluated, tile, parameters.state, @@ -154,7 +156,7 @@ void RenderLineLayer::render(PaintParameters& parameters, RenderSource*) { } draw(parameters.programs.getLineLayerPrograms().lineGradient, - LineGradientProgram::uniformValues( + LineGradientProgram::layoutUniformValues( evaluated, tile, parameters.state, @@ -166,7 +168,7 @@ void RenderLineLayer::render(PaintParameters& parameters, RenderSource*) { }); } else { draw(parameters.programs.getLineLayerPrograms().line, - LineProgram::uniformValues( + LineProgram::layoutUniformValues( evaluated, tile, parameters.state, diff --git a/src/mbgl/renderer/layers/render_raster_layer.cpp b/src/mbgl/renderer/layers/render_raster_layer.cpp index f68acd4061..c8f00eb1fd 100644 --- a/src/mbgl/renderer/layers/render_raster_layer.cpp +++ b/src/mbgl/renderer/layers/render_raster_layer.cpp @@ -7,6 +7,8 @@ #include <mbgl/programs/programs.hpp> #include <mbgl/programs/raster_program.hpp> #include <mbgl/tile/tile.hpp> +#include <mbgl/gfx/cull_face_mode.hpp> +#include <mbgl/gl/context.hpp> #include <mbgl/style/layers/raster_layer_impl.hpp> namespace mbgl { @@ -82,7 +84,7 @@ void RenderRasterLayer::render(PaintParameters& parameters, RenderSource* source auto& programInstance = parameters.programs.getRasterLayerPrograms().raster; const auto allUniformValues = programInstance.computeAllUniformValues( - RasterProgram::UniformValues { + RasterProgram::LayoutUniformValues { uniforms::u_matrix::Value( matrix ), uniforms::u_opacity::Value( evaluated.get<RasterOpacity>() ), uniforms::u_fade_t::Value( 1 ), diff --git a/src/mbgl/renderer/layers/render_symbol_layer.cpp b/src/mbgl/renderer/layers/render_symbol_layer.cpp index 43e3068ff0..31d92dd414 100644 --- a/src/mbgl/renderer/layers/render_symbol_layer.cpp +++ b/src/mbgl/renderer/layers/render_symbol_layer.cpp @@ -12,6 +12,8 @@ #include <mbgl/tile/geometry_tile.hpp> #include <mbgl/tile/geometry_tile_data.hpp> #include <mbgl/style/layers/symbol_layer_impl.hpp> +#include <mbgl/gfx/cull_face_mode.hpp> +#include <mbgl/gl/context.hpp> #include <mbgl/layout/symbol_projection.hpp> #include <mbgl/util/math.hpp> @@ -170,7 +172,7 @@ void RenderSymbolLayer::render(PaintParameters& parameters, RenderSource*) { if (bucket.sdfIcons) { if (values.hasHalo) { draw(parameters.programs.getSymbolLayerPrograms().symbolIconSDF, - SymbolSDFIconProgram::uniformValues(false, values, texsize, parameters.pixelsToGLUnits, alongLine, tile, parameters.state, parameters.symbolFadeChange, SymbolSDFPart::Halo), + SymbolSDFIconProgram::layoutUniformValues(false, values, texsize, parameters.pixelsToGLUnits, alongLine, tile, parameters.state, parameters.symbolFadeChange, SymbolSDFPart::Halo), bucket.icon, bucket.iconSizeBinder, values, @@ -183,7 +185,7 @@ void RenderSymbolLayer::render(PaintParameters& parameters, RenderSource*) { if (values.hasFill) { draw(parameters.programs.getSymbolLayerPrograms().symbolIconSDF, - SymbolSDFIconProgram::uniformValues(false, values, texsize, parameters.pixelsToGLUnits, alongLine, tile, parameters.state, parameters.symbolFadeChange, SymbolSDFPart::Fill), + SymbolSDFIconProgram::layoutUniformValues(false, values, texsize, parameters.pixelsToGLUnits, alongLine, tile, parameters.state, parameters.symbolFadeChange, SymbolSDFPart::Fill), bucket.icon, bucket.iconSizeBinder, values, @@ -195,7 +197,7 @@ void RenderSymbolLayer::render(PaintParameters& parameters, RenderSource*) { } } else { draw(parameters.programs.getSymbolLayerPrograms().symbolIcon, - SymbolIconProgram::uniformValues(false, values, texsize, parameters.pixelsToGLUnits, alongLine, tile, parameters.state, parameters.symbolFadeChange), + SymbolIconProgram::layoutUniformValues(false, values, texsize, parameters.pixelsToGLUnits, alongLine, tile, parameters.state, parameters.symbolFadeChange), bucket.icon, bucket.iconSizeBinder, values, @@ -233,7 +235,7 @@ void RenderSymbolLayer::render(PaintParameters& parameters, RenderSource*) { if (values.hasHalo) { draw(parameters.programs.getSymbolLayerPrograms().symbolGlyph, - SymbolSDFTextProgram::uniformValues(true, values, texsize, parameters.pixelsToGLUnits, alongLine, tile, parameters.state, parameters.symbolFadeChange, SymbolSDFPart::Halo), + SymbolSDFTextProgram::layoutUniformValues(true, values, texsize, parameters.pixelsToGLUnits, alongLine, tile, parameters.state, parameters.symbolFadeChange, SymbolSDFPart::Halo), bucket.text, bucket.textSizeBinder, values, @@ -246,7 +248,7 @@ void RenderSymbolLayer::render(PaintParameters& parameters, RenderSource*) { if (values.hasFill) { draw(parameters.programs.getSymbolLayerPrograms().symbolGlyph, - SymbolSDFTextProgram::uniformValues(true, values, texsize, parameters.pixelsToGLUnits, alongLine, tile, parameters.state, parameters.symbolFadeChange, SymbolSDFPart::Fill), + SymbolSDFTextProgram::layoutUniformValues(true, values, texsize, parameters.pixelsToGLUnits, alongLine, tile, parameters.state, parameters.symbolFadeChange, SymbolSDFPart::Fill), bucket.text, bucket.textSizeBinder, values, @@ -277,7 +279,7 @@ void RenderSymbolLayer::render(PaintParameters& parameters, RenderSource*) { gfx::StencilMode::disabled(), parameters.colorModeForRenderPass(), gfx::CullFaceMode::disabled(), - CollisionBoxProgram::UniformValues { + CollisionBoxProgram::LayoutUniformValues { uniforms::u_matrix::Value( tile.matrix ), uniforms::u_extrude_scale::Value( extrudeScale ), uniforms::u_camera_to_center_distance::Value( parameters.state.getCameraToCenterDistance() ) @@ -313,7 +315,7 @@ void RenderSymbolLayer::render(PaintParameters& parameters, RenderSource*) { gfx::StencilMode::disabled(), parameters.colorModeForRenderPass(), gfx::CullFaceMode::disabled(), - CollisionCircleProgram::UniformValues { + CollisionCircleProgram::LayoutUniformValues { uniforms::u_matrix::Value( tile.matrix ), uniforms::u_extrude_scale::Value( extrudeScale ), uniforms::u_overscale_factor::Value( float(tile.tile.id.overscaleFactor()) ), diff --git a/src/mbgl/renderer/paint_property_binder.hpp b/src/mbgl/renderer/paint_property_binder.hpp index dc5ab6ae22..a014b36ece 100644 --- a/src/mbgl/renderer/paint_property_binder.hpp +++ b/src/mbgl/renderer/paint_property_binder.hpp @@ -2,9 +2,8 @@ #include <mbgl/gfx/context.hpp> #include <mbgl/gfx/uniform.hpp> +#include <mbgl/gfx/attribute.hpp> #include <mbgl/programs/attributes.hpp> -#include <mbgl/gl/attribute.hpp> -#include <mbgl/gl/uniform.hpp> #include <mbgl/util/type_list.hpp> #include <mbgl/renderer/possibly_evaluated_property_value.hpp> #include <mbgl/renderer/paint_property_statistics.hpp> @@ -101,7 +100,7 @@ public: const style::expression::Value&) = 0; virtual void upload(gfx::Context& context) = 0; virtual void setPatternParameters(const optional<ImagePosition>&, const optional<ImagePosition>&, CrossfadeParameters&) = 0; - virtual std::tuple<ExpandToType<As, optional<gl::AttributeBinding>>...> attributeBinding(const PossiblyEvaluatedType& currentValue) const = 0; + virtual std::tuple<ExpandToType<As, optional<gfx::AttributeBinding>>...> attributeBinding(const PossiblyEvaluatedType& currentValue) const = 0; virtual std::tuple<ExpandToType<As, float>...> interpolationFactor(float currentZoom) const = 0; virtual std::tuple<ExpandToType<As, UniformValueType>...> uniformValue(const PossiblyEvaluatedType& currentValue) const = 0; @@ -121,8 +120,8 @@ public: void upload(gfx::Context&) override {} void setPatternParameters(const optional<ImagePosition>&, const optional<ImagePosition>&, CrossfadeParameters&) override {}; - std::tuple<optional<gl::AttributeBinding>> attributeBinding(const PossiblyEvaluatedPropertyValue<T>&) const override { - return std::tuple<optional<gl::AttributeBinding>> {}; + std::tuple<optional<gfx::AttributeBinding>> attributeBinding(const PossiblyEvaluatedPropertyValue<T>&) const override { + return {}; } std::tuple<float> interpolationFactor(float) const override { @@ -155,9 +154,9 @@ public: } } - std::tuple<optional<gl::AttributeBinding>, optional<gl::AttributeBinding>> + std::tuple<optional<gfx::AttributeBinding>, optional<gfx::AttributeBinding>> attributeBinding(const PossiblyEvaluatedPropertyValue<Faded<T>>&) const override { - return std::tuple<optional<gl::AttributeBinding>, optional<gl::AttributeBinding>> {}; + return {}; } std::tuple<float, float> interpolationFactor(float) const override { @@ -177,7 +176,7 @@ template <class T, class A> class SourceFunctionPaintPropertyBinder final : public PaintPropertyBinder<T, T, PossiblyEvaluatedPropertyValue<T>, A> { public: using BaseAttributeType = A; - using BaseVertex = gfx::Vertex<BaseAttributeType>; + using BaseVertex = gfx::VertexType<BaseAttributeType>; using AttributeType = ZoomInterpolatedAttributeType<A>; @@ -200,12 +199,12 @@ public: vertexBuffer = context.createVertexBuffer(std::move(vertexVector)); } - std::tuple<optional<gl::AttributeBinding>> attributeBinding(const PossiblyEvaluatedPropertyValue<T>& currentValue) const override { + std::tuple<optional<gfx::AttributeBinding>> attributeBinding(const PossiblyEvaluatedPropertyValue<T>& currentValue) const override { if (currentValue.isConstant()) { return {}; } else { - return std::tuple<optional<gl::AttributeBinding>>{ - gl::attributeBinding<0>(*vertexBuffer) + return std::tuple<optional<gfx::AttributeBinding>>{ + gfx::attributeBinding(*vertexBuffer) }; } } @@ -236,7 +235,7 @@ public: using AttributeType = ZoomInterpolatedAttributeType<A>; using AttributeValue = typename AttributeType::Value; - using Vertex = gfx::Vertex<AttributeType>; + using Vertex = gfx::VertexType<AttributeType>; CompositeFunctionPaintPropertyBinder(style::PropertyExpression<T> expression_, float zoom, T defaultValue_) : expression(std::move(expression_)), @@ -264,12 +263,12 @@ public: vertexBuffer = context.createVertexBuffer(std::move(vertexVector)); } - std::tuple<optional<gl::AttributeBinding>> attributeBinding(const PossiblyEvaluatedPropertyValue<T>& currentValue) const override { + std::tuple<optional<gfx::AttributeBinding>> attributeBinding(const PossiblyEvaluatedPropertyValue<T>& currentValue) const override { if (currentValue.isConstant()) { return {}; } else { - return std::tuple<optional<gl::AttributeBinding>>{ - gl::attributeBinding<0>(*vertexBuffer) + return std::tuple<optional<gfx::AttributeBinding>>{ + gfx::attributeBinding(*vertexBuffer) }; } } @@ -308,8 +307,8 @@ public: using BaseAttributeType = A1; using BaseAttributeType2 = A2; - using Vertex = gfx::Vertex<BaseAttributeType>; - using Vertex2 = gfx::Vertex<BaseAttributeType2>; + using Vertex = gfx::VertexType<BaseAttributeType>; + using Vertex2 = gfx::VertexType<BaseAttributeType2>; CompositeCrossFadedPaintPropertyBinder(style::PropertyExpression<T> expression_, float zoom, T defaultValue_) : expression(std::move(expression_)), @@ -358,13 +357,13 @@ public: zoomOutVertexBuffer = context.createVertexBuffer(std::move(zoomOutVertexVector)); } - std::tuple<optional<gl::AttributeBinding>, optional<gl::AttributeBinding>> attributeBinding(const PossiblyEvaluatedPropertyValue<Faded<T>>& currentValue) const override { + std::tuple<optional<gfx::AttributeBinding>, optional<gfx::AttributeBinding>> attributeBinding(const PossiblyEvaluatedPropertyValue<Faded<T>>& currentValue) const override { if (currentValue.isConstant()) { return {}; } else { - return std::tuple<optional<gl::AttributeBinding>, optional<gl::AttributeBinding>>{ - gl::attributeBinding<0>(*patternToVertexBuffer), - gl::attributeBinding<0>(crossfade.fromScale == 2 ? *zoomInVertexBuffer : *zoomOutVertexBuffer) + return std::tuple<optional<gfx::AttributeBinding>, optional<gfx::AttributeBinding>>{ + gfx::attributeBinding(*patternToVertexBuffer), + gfx::attributeBinding(crossfade.fromScale == 2 ? *zoomInVertexBuffer : *zoomOutVertexBuffer) }; } } @@ -506,8 +505,7 @@ public: using InterpolationUniformList = typename Property<P>::InterpolationUniformList; using AttributeList = TypeListConcat<ZoomInterpolatedAttributeList<Ps>...>; - using Attributes = gl::Attributes<AttributeList>; - using AttributeBindings = typename Attributes::Bindings; + using AttributeBindings = gfx::AttributeBindings<AttributeList>; template <class EvaluatedProperties> AttributeBindings attributeBindings(const EvaluatedProperties& currentProperties) const { @@ -518,7 +516,6 @@ public: using UniformList = TypeListConcat<InterpolationUniformList<Ps>..., typename Ps::UniformList...>; using UniformValues = gfx::UniformValues<UniformList>; - using Uniforms = gl::Uniforms<UniformList>; template <class EvaluatedProperties> UniformValues uniformValues(float currentZoom, EvaluatedProperties& currentProperties) const { diff --git a/src/mbgl/renderer/render_static_data.cpp b/src/mbgl/renderer/render_static_data.cpp index cae0e0a820..16d0d64a33 100644 --- a/src/mbgl/renderer/render_static_data.cpp +++ b/src/mbgl/renderer/render_static_data.cpp @@ -1,4 +1,5 @@ #include <mbgl/renderer/render_static_data.hpp> +#include <mbgl/gl/context.hpp> #include <mbgl/programs/program_parameters.hpp> namespace mbgl { diff --git a/src/mbgl/renderer/render_static_data.hpp b/src/mbgl/renderer/render_static_data.hpp index da887dff22..b9b52b09ca 100644 --- a/src/mbgl/renderer/render_static_data.hpp +++ b/src/mbgl/renderer/render_static_data.hpp @@ -2,6 +2,7 @@ #include <mbgl/gfx/vertex_buffer.hpp> #include <mbgl/gfx/index_buffer.hpp> +#include <mbgl/gl/renderbuffer.hpp> #include <mbgl/programs/background_program.hpp> #include <mbgl/programs/extrusion_texture_program.hpp> #include <mbgl/programs/programs.hpp> diff --git a/src/mbgl/renderer/render_tile.cpp b/src/mbgl/renderer/render_tile.cpp index d240189d74..24826bfd78 100644 --- a/src/mbgl/renderer/render_tile.cpp +++ b/src/mbgl/renderer/render_tile.cpp @@ -4,6 +4,7 @@ #include <mbgl/renderer/render_static_data.hpp> #include <mbgl/programs/programs.hpp> #include <mbgl/map/transform_state.hpp> +#include <mbgl/gl/context.hpp> #include <mbgl/tile/tile.hpp> #include <mbgl/util/math.hpp> @@ -103,7 +104,7 @@ void RenderTile::finishRender(PaintParameters& parameters) { *tile.debugBucket->indexBuffer, tile.debugBucket->segments, program.computeAllUniformValues( - DebugProgram::UniformValues { + DebugProgram::LayoutUniformValues { uniforms::u_matrix::Value( matrix ), uniforms::u_color::Value( Color::white() ) }, @@ -126,7 +127,7 @@ void RenderTile::finishRender(PaintParameters& parameters) { *tile.debugBucket->indexBuffer, tile.debugBucket->segments, program.computeAllUniformValues( - DebugProgram::UniformValues { + DebugProgram::LayoutUniformValues { uniforms::u_matrix::Value( matrix ), uniforms::u_color::Value( Color::black() ) }, @@ -151,7 +152,7 @@ void RenderTile::finishRender(PaintParameters& parameters) { parameters.staticData.tileBorderIndexBuffer, parameters.staticData.tileBorderSegments, program.computeAllUniformValues( - DebugProgram::UniformValues { + DebugProgram::LayoutUniformValues { uniforms::u_matrix::Value( matrix ), uniforms::u_color::Value( Color::red() ) }, diff --git a/src/mbgl/renderer/renderer_impl.cpp b/src/mbgl/renderer/renderer_impl.cpp index 8a9989dd51..471536cf40 100644 --- a/src/mbgl/renderer/renderer_impl.cpp +++ b/src/mbgl/renderer/renderer_impl.cpp @@ -461,7 +461,7 @@ void Renderer::Impl::render(const UpdateParameters& updateParameters) { parameters.staticData.quadTriangleIndexBuffer, parameters.staticData.tileTriangleSegments, program.computeAllUniformValues( - ClippingMaskProgram::UniformValues { + ClippingMaskProgram::LayoutUniformValues { uniforms::u_matrix::Value( parameters.matrixForTile(clipID.first) ), }, paintAttributeData, diff --git a/src/mbgl/renderer/sources/render_image_source.cpp b/src/mbgl/renderer/sources/render_image_source.cpp index cc8525aa9f..1b135a2838 100644 --- a/src/mbgl/renderer/sources/render_image_source.cpp +++ b/src/mbgl/renderer/sources/render_image_source.cpp @@ -7,6 +7,7 @@ #include <mbgl/renderer/tile_parameters.hpp> #include <mbgl/renderer/render_static_data.hpp> #include <mbgl/programs/programs.hpp> +#include <mbgl/gl/context.hpp> #include <mbgl/util/tile_coordinate.hpp> #include <mbgl/util/tile_cover.hpp> #include <mbgl/util/logging.hpp> @@ -71,7 +72,7 @@ void RenderImageSource::finishRender(PaintParameters& parameters) { parameters.staticData.tileBorderIndexBuffer, parameters.staticData.tileBorderSegments, programInstance.computeAllUniformValues( - DebugProgram::UniformValues { + DebugProgram::LayoutUniformValues { uniforms::u_matrix::Value( matrix ), uniforms::u_color::Value( Color::red() ) }, |