From dc495e1c9d831ccf928381845ffcb409c5d91271 Mon Sep 17 00:00:00 2001 From: Asheem Mamoowala Date: Wed, 4 Apr 2018 15:08:16 -0700 Subject: [core] Add Projection matrix to CustomLayerRenderParameters to transform web mercator world coordinates to GL coordinates. --- include/mbgl/style/layers/custom_layer.hpp | 3 +++ src/mbgl/renderer/layers/render_custom_layer.cpp | 4 ++++ 2 files changed, 7 insertions(+) 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 +#include + namespace mbgl { namespace style { @@ -17,6 +19,7 @@ struct CustomLayerRenderParameters { double bearing; double pitch; double fieldOfView; + std::array 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 #include #include +#include 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)); -- cgit v1.2.1