#include #include namespace mbgl { namespace shaders { UniformBlockInfo::UniformBlockInfo(std::string_view name_, std::size_t id_) : name(name_), id(id_), binding(id_) {} AttributeInfo::AttributeInfo(std::string_view name_, std::size_t id_) : name(name_), id(id_) {} TextureInfo::TextureInfo(std::string_view name_, std::size_t id_) : name(name_), id(id_) {} // Background using BackgroundShaderInfo = ShaderInfo; const std::vector BackgroundShaderInfo::uniformBlocks = { UniformBlockInfo{"BackgroundDrawableUBO", idBackgroundDrawableUBO}, UniformBlockInfo{"BackgroundPropsUBO", idBackgroundPropsUBO}, }; const std::vector BackgroundShaderInfo::attributes = { AttributeInfo{"a_pos", idBackgroundPosVertexAttribute}, }; const std::vector BackgroundShaderInfo::textures = {}; // Background Pattern using BackgroundPatternShaderInfo = ShaderInfo; const std::vector BackgroundPatternShaderInfo::uniformBlocks = { UniformBlockInfo{"GlobalPaintParamsUBO", idGlobalPaintParamsUBO}, UniformBlockInfo{"BackgroundPatternDrawableUBO", idBackgroundDrawableUBO}, UniformBlockInfo{"BackgroundPatternPropsUBO", idBackgroundPropsUBO}, }; const std::vector BackgroundPatternShaderInfo::attributes = { AttributeInfo{"a_pos", idBackgroundPosVertexAttribute}, }; const std::vector BackgroundPatternShaderInfo::textures = { TextureInfo{"u_image", idBackgroundImageTexture}, }; // Circle using CircleShaderInfo = ShaderInfo; const std::vector CircleShaderInfo::uniformBlocks = { UniformBlockInfo{"GlobalPaintParamsUBO", idGlobalPaintParamsUBO}, UniformBlockInfo{"CircleDrawableUBO", idCircleDrawableUBO}, UniformBlockInfo{"CircleEvaluatedPropsUBO", idCircleEvaluatedPropsUBO}, }; const std::vector CircleShaderInfo::attributes = { AttributeInfo{"a_pos", idCirclePosVertexAttribute}, AttributeInfo{"a_color", idCircleColorVertexAttribute}, AttributeInfo{"a_radius", idCircleRadiusVertexAttribute}, AttributeInfo{"a_blur", idCircleBlurVertexAttribute}, AttributeInfo{"a_opacity", idCircleOpacityVertexAttribute}, AttributeInfo{"a_stroke_color", idCircleStrokeColorVertexAttribute}, AttributeInfo{"a_stroke_width", idCircleStrokeWidthVertexAttribute}, AttributeInfo{"a_stroke_opacity", idCircleStrokeOpacityVertexAttribute}, }; const std::vector CircleShaderInfo::textures = {}; // Collision Box using CollisionBoxShaderInfo = ShaderInfo; const std::vector CollisionBoxShaderInfo::uniformBlocks = { UniformBlockInfo{"CollisionDrawableUBO", idCollisionDrawableUBO}, UniformBlockInfo{"CollisionTilePropsUBO", idCollisionTilePropsUBO}, }; const std::vector CollisionBoxShaderInfo::attributes = { AttributeInfo{"a_pos", idCollisionPosVertexAttribute}, AttributeInfo{"a_anchor_pos", idCollisionAnchorPosVertexAttribute}, AttributeInfo{"a_extrude", idCollisionExtrudeVertexAttribute}, AttributeInfo{"a_placed", idCollisionPlacedVertexAttribute}, AttributeInfo{"a_shift", idCollisionShiftVertexAttribute}, }; const std::vector CollisionBoxShaderInfo::textures = {}; // Collision Circle using CollisionCircleShaderInfo = ShaderInfo; const std::vector CollisionCircleShaderInfo::uniformBlocks = { UniformBlockInfo{"CollisionDrawableUBO", idCollisionDrawableUBO}, UniformBlockInfo{"CollisionTilePropsUBO", idCollisionTilePropsUBO}, }; const std::vector CollisionCircleShaderInfo::attributes = { AttributeInfo{"a_pos", idCollisionPosVertexAttribute}, AttributeInfo{"a_anchor_pos", idCollisionAnchorPosVertexAttribute}, AttributeInfo{"a_extrude", idCollisionExtrudeVertexAttribute}, AttributeInfo{"a_placed", idCollisionPlacedVertexAttribute}, }; const std::vector CollisionCircleShaderInfo::textures = {}; // Custom Geometry using CustomGeometryInfo = ShaderInfo; const std::vector CustomGeometryInfo::uniformBlocks = { UniformBlockInfo{"CustomGeometryDrawableUBO", idCustomGeometryDrawableUBO}, }; const std::vector CustomGeometryInfo::attributes = { AttributeInfo{"a_pos", idCustomGeometryPosVertexAttribute}, AttributeInfo{"a_uv", idCustomGeometryTexVertexAttribute}, }; const std::vector CustomGeometryInfo::textures = { TextureInfo{"u_image", idCustomGeometryTexture}, }; // Custom Symbol Icon using CustomSymbolIconShaderInfo = ShaderInfo; const std::vector CustomSymbolIconShaderInfo::uniformBlocks = { UniformBlockInfo{"CustomSymbolIconDrawableUBO", idCustomSymbolDrawableUBO}, }; const std::vector CustomSymbolIconShaderInfo::attributes = { AttributeInfo{"a_pos", idCustomSymbolPosVertexAttribute}, AttributeInfo{"a_tex", idCustomSymbolTexVertexAttribute}, }; const std::vector CustomSymbolIconShaderInfo::textures = { TextureInfo{"u_texture", idCustomSymbolImageTexture}, }; // Debug using DebugShaderInfo = ShaderInfo; const std::vector DebugShaderInfo::uniformBlocks = { UniformBlockInfo{"DebugUBO", idDebugUBO}, }; const std::vector DebugShaderInfo::attributes = { AttributeInfo{"a_pos", idDebugPosVertexAttribute}, }; const std::vector DebugShaderInfo::textures = { TextureInfo{"u_overlay", idDebugOverlayTexture}, }; // Fill using FillShaderInfo = ShaderInfo; const std::vector FillShaderInfo::uniformBlocks = { UniformBlockInfo{"FillDrawableUBO", idFillDrawableUBO}, UniformBlockInfo{"FillEvaluatedPropsUBO", idFillEvaluatedPropsUBO}, }; const std::vector FillShaderInfo::attributes = { AttributeInfo{"a_pos", idFillPosVertexAttribute}, AttributeInfo{"a_color", idFillColorVertexAttribute}, AttributeInfo{"a_opacity", idFillOpacityVertexAttribute}, }; const std::vector FillShaderInfo::textures = {}; // Fill Outline using FillOutlineShaderInfo = ShaderInfo; const std::vector FillOutlineShaderInfo::uniformBlocks = { UniformBlockInfo{"GlobalPaintParamsUBO", idGlobalPaintParamsUBO}, UniformBlockInfo{"FillOutlineDrawableUBO", idFillDrawableUBO}, UniformBlockInfo{"FillEvaluatedPropsUBO", idFillEvaluatedPropsUBO}, }; const std::vector FillOutlineShaderInfo::attributes = { AttributeInfo{"a_pos", idFillPosVertexAttribute}, AttributeInfo{"a_outline_color", idFillOutlineColorVertexAttribute}, AttributeInfo{"a_opacity", idFillOpacityVertexAttribute}, }; const std::vector FillOutlineShaderInfo::textures = {}; // Fill Pattern using FillPatternShaderInfo = ShaderInfo; const std::vector FillPatternShaderInfo::uniformBlocks = { UniformBlockInfo{"GlobalPaintParamsUBO", idGlobalPaintParamsUBO}, UniformBlockInfo{"FillPatternDrawableUBO", idFillDrawableUBO}, UniformBlockInfo{"FillPatternTilePropsUBO", idFillTilePropsUBO}, UniformBlockInfo{"FillEvaluatedPropsUBO", idFillEvaluatedPropsUBO}, }; const std::vector FillPatternShaderInfo::attributes = { AttributeInfo{"a_pos", idFillPosVertexAttribute}, AttributeInfo{"a_opacity", idFillOpacityVertexAttribute}, AttributeInfo{"a_pattern_from", idFillPatternFromVertexAttribute}, AttributeInfo{"a_pattern_to", idFillPatternToVertexAttribute}, }; const std::vector FillPatternShaderInfo::textures = { TextureInfo{"u_image", idFillImageTexture}, }; // Fill Outline Pattern using FillOutlinePatternShaderInfo = ShaderInfo; const std::vector FillOutlinePatternShaderInfo::uniformBlocks = { UniformBlockInfo{"GlobalPaintParamsUBO", idGlobalPaintParamsUBO}, UniformBlockInfo{"FillOutlinePatternDrawableUBO", idFillDrawableUBO}, UniformBlockInfo{"FillOutlinePatternTilePropsUBO", idFillTilePropsUBO}, UniformBlockInfo{"FillEvaluatedPropsUBO", idFillEvaluatedPropsUBO}, }; const std::vector FillOutlinePatternShaderInfo::attributes = { AttributeInfo{"a_pos", idFillPosVertexAttribute}, AttributeInfo{"a_opacity", idFillOpacityVertexAttribute}, AttributeInfo{"a_pattern_from", idFillPatternFromVertexAttribute}, AttributeInfo{"a_pattern_to", idFillPatternToVertexAttribute}, }; const std::vector FillOutlinePatternShaderInfo::textures = { TextureInfo{"u_image", idFillImageTexture}, }; // Fill Outline Triangulated using FillOutlineTriangulatedShaderInfo = ShaderInfo; const std::vector FillOutlineTriangulatedShaderInfo::uniformBlocks = { UniformBlockInfo{"GlobalPaintParamsUBO", idGlobalPaintParamsUBO}, UniformBlockInfo{"FillOutlineTriangulatedDrawableUBO", idFillDrawableUBO}, UniformBlockInfo{"FillEvaluatedPropsUBO", idFillEvaluatedPropsUBO}, }; const std::vector FillOutlineTriangulatedShaderInfo::attributes = { AttributeInfo{"a_pos_normal", idLinePosNormalVertexAttribute}, AttributeInfo{"a_data", idLineDataVertexAttribute}, }; const std::vector FillOutlineTriangulatedShaderInfo::textures = {}; // Fill Extrusion using FillExtrusionShaderInfo = ShaderInfo; const std::vector FillExtrusionShaderInfo::uniformBlocks = { UniformBlockInfo{"FillExtrusionDrawableUBO", idFillExtrusionDrawableUBO}, UniformBlockInfo{"FillExtrusionTilePropsUBO", idFillExtrusionTilePropsUBO}, UniformBlockInfo{"FillExtrusionPropsUBO", idFillExtrusionPropsUBO}, }; const std::vector FillExtrusionShaderInfo::attributes = { AttributeInfo{"a_pos", idFillExtrusionPosVertexAttribute}, AttributeInfo{"a_decimals_ed", idFillExtrusionDecimalsEdAttribute}, AttributeInfo{"a_normal2d", idFillExtrusionNormal2DVertexAttribute}, AttributeInfo{"a_base", idFillExtrusionBaseVertexAttribute}, AttributeInfo{"a_height", idFillExtrusionHeightVertexAttribute}, AttributeInfo{"a_color", idFillExtrusionColorVertexAttribute}, }; const std::vector FillExtrusionShaderInfo::textures = {}; // Fill Extrusion Pattern using FillExtrusionPatternShaderInfo = ShaderInfo; const std::vector FillExtrusionPatternShaderInfo::uniformBlocks = { UniformBlockInfo{"GlobalPaintParamsUBO", idGlobalPaintParamsUBO}, UniformBlockInfo{"FillExtrusionDrawableUBO", idFillExtrusionDrawableUBO}, UniformBlockInfo{"FillExtrusionTilePropsUBO", idFillExtrusionTilePropsUBO}, UniformBlockInfo{"FillExtrusionPropsUBO", idFillExtrusionPropsUBO}, }; const std::vector FillExtrusionPatternShaderInfo::attributes = { AttributeInfo{"a_pos", idFillExtrusionPosVertexAttribute}, AttributeInfo{"a_decimals_ed", idFillExtrusionDecimalsEdAttribute}, AttributeInfo{"a_normal2d", idFillExtrusionNormal2DVertexAttribute}, AttributeInfo{"a_base", idFillExtrusionBaseVertexAttribute}, AttributeInfo{"a_height", idFillExtrusionHeightVertexAttribute}, AttributeInfo{"a_pattern_from", idFillExtrusionPatternFromVertexAttribute}, AttributeInfo{"a_pattern_to", idFillExtrusionPatternToVertexAttribute}, }; const std::vector FillExtrusionPatternShaderInfo::textures = { TextureInfo{"u_image", idFillExtrusionImageTexture}, }; // Heatmap using HeatmapShaderInfo = ShaderInfo; const std::vector HeatmapShaderInfo::uniformBlocks = { UniformBlockInfo{"HeatmapDrawableUBO", idHeatmapDrawableUBO}, UniformBlockInfo{"HeatmapEvaluatedPropsUBO", idHeatmapEvaluatedPropsUBO}, }; const std::vector HeatmapShaderInfo::attributes = { AttributeInfo{"a_pos", idHeatmapPosVertexAttribute}, AttributeInfo{"a_weight", idHeatmapWeightVertexAttribute}, AttributeInfo{"a_radius", idHeatmapRadiusVertexAttribute}, }; const std::vector HeatmapShaderInfo::textures = {}; // Heatmap Texture using HeatmapTextureShaderInfo = ShaderInfo; const std::vector HeatmapTextureShaderInfo::uniformBlocks = { UniformBlockInfo{"GlobalPaintParamsUBO", idGlobalPaintParamsUBO}, UniformBlockInfo{"HeatmapTexturePropsUBO", idHeatmapTexturePropsUBO}, }; const std::vector HeatmapTextureShaderInfo::attributes = { AttributeInfo{"a_pos", idHeatmapPosVertexAttribute}, }; const std::vector HeatmapTextureShaderInfo::textures = { TextureInfo{"u_image", idHeatmapImageTexture}, TextureInfo{"u_color_ramp", idHeatmapColorRampTexture}, }; // Hillshade Prepare using HillshadePrepareShaderInfo = ShaderInfo; const std::vector HillshadePrepareShaderInfo::uniformBlocks = { UniformBlockInfo{"HillshadePrepareDrawableUBO", idHillshadePrepareDrawableUBO}, UniformBlockInfo{"HillshadePrepareTilePropsUBO", idHillshadePrepareTilePropsUBO}, }; const std::vector HillshadePrepareShaderInfo::attributes = { AttributeInfo{"a_pos", idHillshadePosVertexAttribute}, AttributeInfo{"a_texture_pos", idHillshadeTexturePosVertexAttribute}, }; const std::vector HillshadePrepareShaderInfo::textures = { TextureInfo{"u_image", idHillshadeImageTexture}, }; // Hillshade using HillshadeShaderInfo = ShaderInfo; const std::vector HillshadeShaderInfo::uniformBlocks = { UniformBlockInfo{"HillshadeDrawableUBO", idHillshadeDrawableUBO}, UniformBlockInfo{"HillshadeTilePropsUBO", idHillshadeTilePropsUBO}, UniformBlockInfo{"HillshadeEvaluatedPropsUBO", idHillshadeEvaluatedPropsUBO}, }; const std::vector HillshadeShaderInfo::attributes = { AttributeInfo{"a_pos", idHillshadePosVertexAttribute}, AttributeInfo{"a_texture_pos", idHillshadeTexturePosVertexAttribute}, }; const std::vector HillshadeShaderInfo::textures = { TextureInfo{"u_image", idHillshadeImageTexture}, }; // Color Relief using ColorReliefShaderInfo = ShaderInfo; const std::vector ColorReliefShaderInfo::uniformBlocks = { UniformBlockInfo{"ColorReliefDrawableUBO", idColorReliefDrawableUBO}, UniformBlockInfo{"ColorReliefTilePropsUBO", idColorReliefTilePropsUBO}, UniformBlockInfo{"ColorReliefEvaluatedPropsUBO", idColorReliefEvaluatedPropsUBO}, }; const std::vector ColorReliefShaderInfo::attributes = { AttributeInfo{"a_pos", idColorReliefPosVertexAttribute}, AttributeInfo{"a_texture_pos", idColorReliefTexturePosVertexAttribute}, }; const std::vector ColorReliefShaderInfo::textures = { TextureInfo{"u_image", idColorReliefImageTexture}, TextureInfo{"u_elevation_stops", idColorReliefElevationStopsTexture}, TextureInfo{"u_color_stops", idColorReliefColorStopsTexture}, }; // Line using LineShaderInfo = ShaderInfo; const std::vector LineShaderInfo::uniformBlocks = { UniformBlockInfo{"GlobalPaintParamsUBO", idGlobalPaintParamsUBO}, UniformBlockInfo{"LineDrawableUBO", idLineDrawableUBO}, UniformBlockInfo{"LineEvaluatedPropsUBO", idLineEvaluatedPropsUBO}, }; const std::vector LineShaderInfo::attributes = { AttributeInfo{"a_pos_normal", idLinePosNormalVertexAttribute}, AttributeInfo{"a_data", idLineDataVertexAttribute}, AttributeInfo{"a_color", idLineColorVertexAttribute}, AttributeInfo{"a_blur", idLineBlurVertexAttribute}, AttributeInfo{"a_opacity", idLineOpacityVertexAttribute}, AttributeInfo{"a_gapwidth", idLineGapWidthVertexAttribute}, AttributeInfo{"a_offset", idLineOffsetVertexAttribute}, AttributeInfo{"a_width", idLineWidthVertexAttribute}, }; const std::vector LineShaderInfo::textures = {}; // Location Indicator using LocationIndicatorInfo = ShaderInfo; const std::vector LocationIndicatorInfo::uniformBlocks = { UniformBlockInfo{"LocationIndicatorDrawableUBO", idLocationIndicatorDrawableUBO}, }; const std::vector LocationIndicatorInfo::attributes = { AttributeInfo{"a_pos", idLocationIndicatorPosVertexAttribute}, }; const std::vector LocationIndicatorInfo::textures = {}; using LocationIndicatorTexturedInfo = ShaderInfo; const std::vector LocationIndicatorTexturedInfo::uniformBlocks = { UniformBlockInfo{"LocationIndicatorDrawableUBO", idLocationIndicatorDrawableUBO}, }; const std::vector LocationIndicatorTexturedInfo::attributes = { AttributeInfo{"a_pos", idLocationIndicatorPosVertexAttribute}, AttributeInfo{"a_uv", idLocationIndicatorTexVertexAttribute}, }; const std::vector LocationIndicatorTexturedInfo::textures = { TextureInfo{"u_image", idLocationIndicatorTexture}, }; // Line Gradient using LineGradientShaderInfo = ShaderInfo; const std::vector LineGradientShaderInfo::uniformBlocks = { UniformBlockInfo{"GlobalPaintParamsUBO", idGlobalPaintParamsUBO}, UniformBlockInfo{"LineGradientDrawableUBO", idLineDrawableUBO}, UniformBlockInfo{"LineEvaluatedPropsUBO", idLineEvaluatedPropsUBO}, }; const std::vector LineGradientShaderInfo::attributes = { AttributeInfo{"a_pos_normal", idLinePosNormalVertexAttribute}, AttributeInfo{"a_data", idLineDataVertexAttribute}, AttributeInfo{"a_blur", idLineBlurVertexAttribute}, AttributeInfo{"a_opacity", idLineOpacityVertexAttribute}, AttributeInfo{"a_gapwidth", idLineGapWidthVertexAttribute}, AttributeInfo{"a_offset", idLineOffsetVertexAttribute}, AttributeInfo{"a_width", idLineWidthVertexAttribute}, }; const std::vector LineGradientShaderInfo::textures = { TextureInfo{"u_image", idLineImageTexture}, }; // Line Pattern using LinePatternShaderInfo = ShaderInfo; const std::vector LinePatternShaderInfo::uniformBlocks = { UniformBlockInfo{"GlobalPaintParamsUBO", idGlobalPaintParamsUBO}, UniformBlockInfo{"LinePatternDrawableUBO", idLineDrawableUBO}, UniformBlockInfo{"LinePatternTilePropsUBO", idLineTilePropsUBO}, UniformBlockInfo{"LineEvaluatedPropsUBO", idLineEvaluatedPropsUBO}, }; const std::vector LinePatternShaderInfo::attributes = { AttributeInfo{"a_pos_normal", idLinePosNormalVertexAttribute}, AttributeInfo{"a_data", idLineDataVertexAttribute}, AttributeInfo{"a_blur", idLineBlurVertexAttribute}, AttributeInfo{"a_opacity", idLineOpacityVertexAttribute}, AttributeInfo{"a_offset", idLineOffsetVertexAttribute}, AttributeInfo{"a_gapwidth", idLineGapWidthVertexAttribute}, AttributeInfo{"a_width", idLineWidthVertexAttribute}, AttributeInfo{"a_pattern_from", idLinePatternFromVertexAttribute}, AttributeInfo{"a_pattern_to", idLinePatternToVertexAttribute}, }; const std::vector LinePatternShaderInfo::textures = { TextureInfo{"u_image", idLineImageTexture}, }; // Line SDF using LineSDFShaderInfo = ShaderInfo; const std::vector LineSDFShaderInfo::uniformBlocks = { UniformBlockInfo{"GlobalPaintParamsUBO", idGlobalPaintParamsUBO}, UniformBlockInfo{"LineSDFDrawableUBO", idLineDrawableUBO}, UniformBlockInfo{"LineSDFTilePropsUBO", idLineTilePropsUBO}, UniformBlockInfo{"LineEvaluatedPropsUBO", idLineEvaluatedPropsUBO}, }; const std::vector LineSDFShaderInfo::attributes = { AttributeInfo{"a_pos_normal", idLinePosNormalVertexAttribute}, AttributeInfo{"a_data", idLineDataVertexAttribute}, AttributeInfo{"a_color", idLineColorVertexAttribute}, AttributeInfo{"a_blur", idLineBlurVertexAttribute}, AttributeInfo{"a_opacity", idLineOpacityVertexAttribute}, AttributeInfo{"a_gapwidth", idLineGapWidthVertexAttribute}, AttributeInfo{"a_offset", idLineOffsetVertexAttribute}, AttributeInfo{"a_width", idLineWidthVertexAttribute}, AttributeInfo{"a_floorwidth", idLineFloorWidthVertexAttribute}, }; const std::vector LineSDFShaderInfo::textures = { TextureInfo{"u_image", idLineImageTexture}, }; // Raster using RasterShaderInfo = ShaderInfo; const std::vector RasterShaderInfo::uniformBlocks = { UniformBlockInfo{"RasterDrawableUBO", idRasterDrawableUBO}, UniformBlockInfo{"RasterEvaluatedPropsUBO", idRasterEvaluatedPropsUBO}, }; const std::vector RasterShaderInfo::attributes = { AttributeInfo{"a_pos", idRasterPosVertexAttribute}, AttributeInfo{"a_texture_pos", idRasterTexturePosVertexAttribute}, }; const std::vector RasterShaderInfo::textures = { TextureInfo{"u_image0", idRasterImage0Texture}, TextureInfo{"u_image1", idRasterImage0Texture}, }; // Symbol Icon using SymbolIconShaderInfo = ShaderInfo; const std::vector SymbolIconShaderInfo::uniformBlocks = { UniformBlockInfo{"GlobalPaintParamsUBO", idGlobalPaintParamsUBO}, UniformBlockInfo{"SymbolDrawableUBO", idSymbolDrawableUBO}, UniformBlockInfo{"SymbolTilePropsUBO", idSymbolTilePropsUBO}, UniformBlockInfo{"SymbolEvaluatedPropsUBO", idSymbolEvaluatedPropsUBO}, }; const std::vector SymbolIconShaderInfo::attributes = { AttributeInfo{"a_pos_offset", idSymbolPosOffsetVertexAttribute}, AttributeInfo{"a_data", idSymbolDataVertexAttribute}, AttributeInfo{"a_pixeloffset", idSymbolPixelOffsetVertexAttribute}, AttributeInfo{"a_projected_pos", idSymbolProjectedPosVertexAttribute}, AttributeInfo{"a_fade_opacity", idSymbolFadeOpacityVertexAttribute}, AttributeInfo{"a_opacity", idSymbolOpacityVertexAttribute}, }; const std::vector SymbolIconShaderInfo::textures = { TextureInfo{"u_texture", idSymbolImageTexture}, }; // Symbol SDF using SymbolSDFShaderInfo = ShaderInfo; const std::vector SymbolSDFShaderInfo::uniformBlocks = { UniformBlockInfo{"GlobalPaintParamsUBO", idGlobalPaintParamsUBO}, UniformBlockInfo{"SymbolDrawableUBO", idSymbolDrawableUBO}, UniformBlockInfo{"SymbolTilePropsUBO", idSymbolTilePropsUBO}, UniformBlockInfo{"SymbolEvaluatedPropsUBO", idSymbolEvaluatedPropsUBO}, }; const std::vector SymbolSDFShaderInfo::attributes = { AttributeInfo{"a_pos_offset", idSymbolPosOffsetVertexAttribute}, AttributeInfo{"a_data", idSymbolDataVertexAttribute}, AttributeInfo{"a_pixeloffset", idSymbolPixelOffsetVertexAttribute}, AttributeInfo{"a_projected_pos", idSymbolProjectedPosVertexAttribute}, AttributeInfo{"a_fade_opacity", idSymbolFadeOpacityVertexAttribute}, AttributeInfo{"a_fill_color", idSymbolColorVertexAttribute}, AttributeInfo{"a_halo_color", idSymbolHaloColorVertexAttribute}, AttributeInfo{"a_opacity", idSymbolOpacityVertexAttribute}, AttributeInfo{"a_halo_width", idSymbolHaloWidthVertexAttribute}, AttributeInfo{"a_halo_blur", idSymbolHaloBlurVertexAttribute}, }; const std::vector SymbolSDFShaderInfo::textures = { TextureInfo{"u_texture", idSymbolImageTexture}, }; // Symbol Text & Icon using SymbolTextAndIconShaderInfo = ShaderInfo; const std::vector SymbolTextAndIconShaderInfo::uniformBlocks = { UniformBlockInfo{"GlobalPaintParamsUBO", idGlobalPaintParamsUBO}, UniformBlockInfo{"SymbolDrawableUBO", idSymbolDrawableUBO}, UniformBlockInfo{"SymbolTilePropsUBO", idSymbolTilePropsUBO}, UniformBlockInfo{"SymbolEvaluatedPropsUBO", idSymbolEvaluatedPropsUBO}, }; const std::vector SymbolTextAndIconShaderInfo::attributes = { AttributeInfo{"a_pos_offset", idSymbolPosOffsetVertexAttribute}, AttributeInfo{"a_data", idSymbolDataVertexAttribute}, AttributeInfo{"a_projected_pos", idSymbolProjectedPosVertexAttribute}, AttributeInfo{"a_fade_opacity", idSymbolFadeOpacityVertexAttribute}, AttributeInfo{"a_fill_color", idSymbolColorVertexAttribute}, AttributeInfo{"a_halo_color", idSymbolHaloColorVertexAttribute}, AttributeInfo{"a_opacity", idSymbolOpacityVertexAttribute}, AttributeInfo{"a_halo_width", idSymbolHaloWidthVertexAttribute}, AttributeInfo{"a_halo_blur", idSymbolHaloBlurVertexAttribute}, }; const std::vector SymbolTextAndIconShaderInfo::textures = { TextureInfo{"u_texture", idSymbolImageTexture}, TextureInfo{"u_texture_icon", idSymbolImageIconTexture}, }; } // namespace shaders } // namespace mbgl