[core] Enable property functions for line-width (#9250)

This commit is contained in:
Lauren Budorick
2017-06-19 14:27:43 -07:00
committed by GitHub
parent a33cad9855
commit 87a70c4793
33 changed files with 340 additions and 82 deletions

View File

@@ -13,7 +13,7 @@ using namespace style;
static_assert(sizeof(LineLayoutVertex) == 8, "expected LineLayoutVertex size");
template <class Values, class...Args>
Values makeValues(const LinePaintProperties::PossiblyEvaluated& properties,
Values makeValues(const RenderLinePaintProperties::PossiblyEvaluated& properties,
const RenderTile& tile,
const TransformState& state,
const std::array<float, 2>& pixelsToGLUnits,
@@ -25,7 +25,6 @@ Values makeValues(const LinePaintProperties::PossiblyEvaluated& properties,
properties.get<LineTranslateAnchor>(),
state)
},
uniforms::u_width::Value{ properties.get<LineWidth>() },
uniforms::u_ratio::Value{ 1.0f / tile.id.pixelsToTileUnits(1.0, state.getZoom()) },
uniforms::u_gl_units_to_pixels::Value{{{ 1.0f / pixelsToGLUnits[0], 1.0f / pixelsToGLUnits[1] }}},
std::forward<Args>(args)...
@@ -33,7 +32,7 @@ Values makeValues(const LinePaintProperties::PossiblyEvaluated& properties,
}
LineProgram::UniformValues
LineProgram::uniformValues(const LinePaintProperties::PossiblyEvaluated& properties,
LineProgram::uniformValues(const RenderLinePaintProperties::PossiblyEvaluated& properties,
const RenderTile& tile,
const TransformState& state,
const std::array<float, 2>& pixelsToGLUnits) {
@@ -46,17 +45,16 @@ LineProgram::uniformValues(const LinePaintProperties::PossiblyEvaluated& propert
}
LineSDFProgram::UniformValues
LineSDFProgram::uniformValues(const LinePaintProperties::PossiblyEvaluated& properties,
LineSDFProgram::uniformValues(const RenderLinePaintProperties::PossiblyEvaluated& properties,
float pixelRatio,
const RenderTile& tile,
const TransformState& state,
const std::array<float, 2>& pixelsToGLUnits,
const LinePatternPos& posA,
const LinePatternPos& posB,
float dashLineWidth,
float atlasWidth) {
const float widthA = posA.width * properties.get<LineDasharray>().fromScale * dashLineWidth;
const float widthB = posB.width * properties.get<LineDasharray>().toScale * dashLineWidth;
const float widthA = posA.width * properties.get<LineDasharray>().fromScale;
const float widthB = posB.width * properties.get<LineDasharray>().toScale;
std::array<float, 2> scaleA {{
1.0f / tile.id.pixelsToTileUnits(widthA, state.getIntegerZoom()),
@@ -84,7 +82,7 @@ LineSDFProgram::uniformValues(const LinePaintProperties::PossiblyEvaluated& prop
}
LinePatternProgram::UniformValues
LinePatternProgram::uniformValues(const LinePaintProperties::PossiblyEvaluated& properties,
LinePatternProgram::uniformValues(const RenderLinePaintProperties::PossiblyEvaluated& properties,
const RenderTile& tile,
const TransformState& state,
const std::array<float, 2>& pixelsToGLUnits,