From 4a5dc37245d23805d13865f5ef9c5f26e539a9ca Mon Sep 17 00:00:00 2001 From: Molly Lloyd Date: Thu, 14 Jun 2018 14:35:39 -0700 Subject: [core] Implement CrossFadedDataDrivenProperty to add support for feature expressions in `*-pattern` properties --- src/mbgl/renderer/layers/render_background_layer.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'src/mbgl/renderer/layers/render_background_layer.cpp') diff --git a/src/mbgl/renderer/layers/render_background_layer.cpp b/src/mbgl/renderer/layers/render_background_layer.cpp index 2dc5fe7339..ad85fe0cce 100644 --- a/src/mbgl/renderer/layers/render_background_layer.cpp +++ b/src/mbgl/renderer/layers/render_background_layer.cpp @@ -34,6 +34,7 @@ void RenderBackgroundLayer::transition(const TransitionParameters ¶meters) { void RenderBackgroundLayer::evaluate(const PropertyEvaluationParameters ¶meters) { evaluated = unevaluated.evaluate(parameters); + crossfade = parameters.getCrossfadeParameters(); passes = evaluated.get() > 0 ? RenderPass::Translucent : RenderPass::None; @@ -43,6 +44,10 @@ bool RenderBackgroundLayer::hasTransition() const { return unevaluated.hasTransition(); } +bool RenderBackgroundLayer::hasCrossfade() const { + return crossfade.t != 1; +} + void RenderBackgroundLayer::render(PaintParameters& parameters, RenderSource*) { // Note that for bottommost layers without a pattern, the background color is drawn with // glClear rather than this method. @@ -97,7 +102,7 @@ void RenderBackgroundLayer::render(PaintParameters& parameters, RenderSource*) { parameters.imageManager.getPixelSize(), *imagePosA, *imagePosB, - evaluated.get(), + crossfade, tileID, parameters.state ) @@ -108,9 +113,9 @@ void RenderBackgroundLayer::render(PaintParameters& parameters, RenderSource*) { draw( parameters.programs.background, BackgroundProgram::UniformValues { - uniforms::u_matrix::Value{ parameters.matrixForTile(tileID) }, - uniforms::u_color::Value{ evaluated.get() }, - uniforms::u_opacity::Value{ evaluated.get() }, + uniforms::u_matrix::Value( parameters.matrixForTile(tileID) ), + uniforms::u_color::Value( evaluated.get() ), + uniforms::u_opacity::Value( evaluated.get() ), } ); } -- cgit v1.2.1