diff options
author | Konstantin Käfer <mail@kkaefer.com> | 2019-03-07 17:50:02 +0100 |
---|---|---|
committer | Konstantin Käfer <mail@kkaefer.com> | 2019-03-12 11:03:54 +0100 |
commit | e27f33062994a1b0155b44b9d471e48e93b09f8e (patch) | |
tree | eff2ba71134b9721c16fd53378b9256b94396712 /src/mbgl/renderer/layers/render_line_layer.cpp | |
parent | cb64c380fbbd209cb68af60e76b7a770805353a8 (diff) | |
download | qtlocation-mapboxgl-e27f33062994a1b0155b44b9d471e48e93b09f8e.tar.gz |
[core] add texture bindings to draw call instead of Context member fn
Diffstat (limited to 'src/mbgl/renderer/layers/render_line_layer.cpp')
-rw-r--r-- | src/mbgl/renderer/layers/render_line_layer.cpp | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/src/mbgl/renderer/layers/render_line_layer.cpp b/src/mbgl/renderer/layers/render_line_layer.cpp index 9eb659f79f..f3947685fe 100644 --- a/src/mbgl/renderer/layers/render_line_layer.cpp +++ b/src/mbgl/renderer/layers/render_line_layer.cpp @@ -109,8 +109,6 @@ void RenderLineLayer::render(PaintParameters& parameters, RenderSource*) { LinePatternPos posA = parameters.lineAtlas.getDashPosition(evaluated.get<LineDasharray>().from, cap); LinePatternPos posB = parameters.lineAtlas.getDashPosition(evaluated.get<LineDasharray>().to, cap); - parameters.lineAtlas.bind(parameters.context, 0); - draw(parameters.programs.getLineLayerPrograms().lineSDF, LineSDFProgram::uniformValues( evaluated, @@ -124,13 +122,14 @@ void RenderLineLayer::render(PaintParameters& parameters, RenderSource*) { parameters.lineAtlas.getSize().width), {}, {}, - LineSDFProgram::TextureBindings{}); + LineSDFProgram::TextureBindings{ + parameters.lineAtlas.textureBinding(parameters.context), + }); } else if (!unevaluated.get<LinePattern>().isUndefined()) { const auto linePatternValue = evaluated.get<LinePattern>().constantOr(Faded<std::basic_string<char>>{ "", ""}); assert(dynamic_cast<GeometryTile*>(&tile.tile)); - GeometryTile& geometryTile = static_cast<GeometryTile&>(tile.tile); - parameters.context.bindTexture(*geometryTile.iconAtlasTexture, 0, gfx::TextureFilterType::Linear); + GeometryTile& geometryTile = static_cast<GeometryTile&>(tile.tile); const Size texsize = geometryTile.iconAtlasTexture->size; optional<ImagePosition> posA = geometryTile.getPattern(linePatternValue.from); @@ -147,12 +146,13 @@ void RenderLineLayer::render(PaintParameters& parameters, RenderSource*) { parameters.pixelRatio), *posA, *posB, - LinePatternProgram::TextureBindings{}); + LinePatternProgram::TextureBindings{ + textures::u_image::Value{ *geometryTile.iconAtlasTexture->resource, gfx::TextureFilterType::Linear }, + }); } else if (!unevaluated.get<LineGradient>().getValue().isUndefined()) { if (!colorRampTexture) { colorRampTexture = parameters.context.createTexture(colorRamp); } - parameters.context.bindTexture(*colorRampTexture, 0, gfx::TextureFilterType::Linear); draw(parameters.programs.getLineLayerPrograms().lineGradient, LineGradientProgram::uniformValues( @@ -162,7 +162,9 @@ void RenderLineLayer::render(PaintParameters& parameters, RenderSource*) { parameters.pixelsToGLUnits), {}, {}, - LineGradientProgram::TextureBindings{}); + LineGradientProgram::TextureBindings{ + textures::u_image::Value{ *colorRampTexture->resource, gfx::TextureFilterType::Linear }, + }); } else { draw(parameters.programs.getLineLayerPrograms().line, LineProgram::uniformValues( |