diff options
author | Bruno de Oliveira Abinader <bruno@mapbox.com> | 2016-07-02 11:57:00 +0300 |
---|---|---|
committer | Bruno de Oliveira Abinader <bruno@mapbox.com> | 2016-07-02 18:04:20 +0300 |
commit | aa1fa49af53d027ce9f030634b74b679b290e847 (patch) | |
tree | 0fd1260497cb86b72a3af8d2a25a65425fd97aaf /src/mbgl/renderer/painter_raster.cpp | |
parent | 3bf85cc55d662c218e371a03040c4cd5c3cca771 (diff) | |
download | qtlocation-mapboxgl-aa1fa49af53d027ce9f030634b74b679b290e847.tar.gz |
[core] Update RasterShader
Ref: https://github.com/mapbox/mapbox-gl-shaders/issues/1
Diffstat (limited to 'src/mbgl/renderer/painter_raster.cpp')
-rw-r--r-- | src/mbgl/renderer/painter_raster.cpp | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/src/mbgl/renderer/painter_raster.cpp b/src/mbgl/renderer/painter_raster.cpp index c137caf2f6..6f2352b0cd 100644 --- a/src/mbgl/renderer/painter_raster.cpp +++ b/src/mbgl/renderer/painter_raster.cpp @@ -18,12 +18,16 @@ void Painter::renderRaster(RasterBucket& bucket, const RasterPaintProperties& properties = layer.impl->paint; if (bucket.hasData()) { - const auto& shaderRaster = isOverdraw() ? rasterOverdrawShader : rasterShader; - auto& vaoRaster = isOverdraw() ? coveringRasterOverdrawArray : coveringRasterArray; + const bool overdraw = isOverdraw(); + const auto& shaderRaster = overdraw ? rasterOverdrawShader : rasterShader; + auto& vaoRaster = overdraw ? coveringRasterOverdrawArray : coveringRasterArray; + config.program = shaderRaster->getID(); shaderRaster->u_matrix = matrix; - shaderRaster->u_buffer = 0; - shaderRaster->u_opacity = properties.rasterOpacity; + shaderRaster->u_buffer_scale = 1.0f; + shaderRaster->u_opacity0 = properties.rasterOpacity; + shaderRaster->u_opacity1 = 1.0f - properties.rasterOpacity; + shaderRaster->u_brightness_low = properties.rasterBrightnessMin; shaderRaster->u_brightness_high = properties.rasterBrightnessMax; shaderRaster->u_saturation_factor = saturationFactor(properties.rasterSaturation); @@ -32,14 +36,17 @@ void Painter::renderRaster(RasterBucket& bucket, config.stencilTest = GL_FALSE; - shaderRaster->u_image = 0; - config.activeTexture = GL_TEXTURE0; + shaderRaster->u_image0 = 0; // GL_TEXTURE0 + shaderRaster->u_image1 = 1; // GL_TEXTURE1 + shaderRaster->u_tl_parent = {{ 0.0f, 0.0f }}; + shaderRaster->u_scale_parent = 1.0f; config.depthFunc.reset(); config.depthTest = GL_TRUE; config.depthMask = GL_FALSE; setDepthSublayer(0); - bucket.drawRaster(*shaderRaster, tileStencilBuffer, vaoRaster, store); + + bucket.drawRaster(*shaderRaster, rasterBoundsBuffer, vaoRaster, config, store); } } |