diff options
author | Asheem Mamoowala <asheem.mamoowala@mapbox.com> | 2018-04-04 15:08:16 -0700 |
---|---|---|
committer | Asheem Mamoowala <asheem.mamoowala@mapbox.com> | 2018-04-04 17:20:03 -0700 |
commit | 8ab179cc249867a37491993d2129c8992cc83e68 (patch) | |
tree | c2cc67bccd851e6d60fafcaed4306b41a03623ab | |
parent | db3cf229f83f1bc3337bace81e743f7bb633fee9 (diff) | |
download | qtlocation-mapboxgl-8ab179cc249867a37491993d2129c8992cc83e68.tar.gz |
[core] Add Projection matrix to CustomLayerRenderParameters to transform web mercator world coordinates to GL coordinates.
-rw-r--r-- | include/mbgl/style/layers/custom_layer.hpp | 3 | ||||
-rw-r--r-- | src/mbgl/renderer/layers/render_custom_layer.cpp | 4 |
2 files changed, 7 insertions, 0 deletions
diff --git a/include/mbgl/style/layers/custom_layer.hpp b/include/mbgl/style/layers/custom_layer.hpp index 9911df9a1e..fbe3a4a6c2 100644 --- a/include/mbgl/style/layers/custom_layer.hpp +++ b/include/mbgl/style/layers/custom_layer.hpp @@ -2,6 +2,8 @@ #include <mbgl/style/layer.hpp> +#include <array> + namespace mbgl { namespace style { @@ -17,6 +19,7 @@ struct CustomLayerRenderParameters { double bearing; double pitch; double fieldOfView; + std::array<double, 16> projectionMatrix; }; class CustomLayerHost { diff --git a/src/mbgl/renderer/layers/render_custom_layer.cpp b/src/mbgl/renderer/layers/render_custom_layer.cpp index 85ca5b074e..be9f64d9eb 100644 --- a/src/mbgl/renderer/layers/render_custom_layer.cpp +++ b/src/mbgl/renderer/layers/render_custom_layer.cpp @@ -6,6 +6,7 @@ #include <mbgl/style/layers/custom_layer_impl.hpp> #include <mbgl/map/transform_state.hpp> #include <mbgl/gl/gl.hpp> +#include <mbgl/util/mat4.hpp> namespace mbgl { @@ -72,6 +73,9 @@ void RenderCustomLayer::render(PaintParameters& paintParameters, RenderSource*) parameters.bearing = -state.getAngle() * util::RAD2DEG; parameters.pitch = state.getPitch(); parameters.fieldOfView = state.getFieldOfView(); + mat4 projMatrix; + state.getProjMatrix(projMatrix); + parameters.projectionMatrix = projMatrix; MBGL_CHECK_ERROR(host->render(parameters)); |