Skip to content

Unicode character not recognized anymore in Makie 0.24 #5423

@cyanescent

Description

@cyanescent
  • What version of Makie are you running? Makie v0.24.6
  • What is the last Makie version this feature worked on? Makie v0.23
  • can you reproduce the bug with a fresh environment ? (]activate --temp; add Makie)
  • Which backend are you using? GLMakie & CairoMakie
  • What platform + GPU are you on? Linux, AMD iGPU
  • Please provide an minimal example of the failing code.
using GLMakie # or CairoMakie
f,ax=lines(1:10; axis=(;ylabel="")) # full asterisk unicode

Used to work in Makie < v0.24, now throws this error:

ERROR: Failed to resolve arg1:
[ComputeEdge] arg1 = compute_identity((linesgments_shifted, ), changed, cached)
  @ /home/alexandre/.julia/packages/ComputePipeline/03tW7/src/ComputePipeline.jl:737
[ComputeEdge] linesgments_shifted = (::MapFunctionWrapper(#tex_linesegments!##0))((linesegments, lineindices, preprojection, model_f32c, positions_transformed_f32c, model_clip_planes, space, ), changed, cached)
  @ unknown method location
[ComputeEdge] glyphcollections, glyphindices, font_per_char, glyph_origins, glyph_extents, text_blocks, text_color, text_rotation, text_scales, text_strokewidth, text_strokecolor, linesegments, linewidths, linecolors, lineindices = #compute_glyph_collections!##0((input_text, fontsize, selected_font, align, rotation, justification, lineheight, word_wrap_width, offset, fonts, computed_color, strokecolor, strokewidth, ), changed, cached)
  @ /home/alexandre/.julia/packages/Makie/4JW9B/src/basic_recipes/text.jl:333
  with edge inputs:
    input_text = ["*"]
    fontsize = 14.0f0
    selected_font = FTFont (family = TeX Gyre Heros Makie, style = Regular)
    align = (:center, :bottom)
    rotation = 0.70710677 + 0.0im + 0.0jm + 0.70710677km
    justification = Makie.Automatic()
    lineheight = 1.0
    word_wrap_width = -1
    offset = Float32[0.0, 0.0, 0.0]
    fonts = Attributes()
    computed_color = RGBA{Float32}(0.0, 0.0, 0.0, 1.0)
    strokecolor = RGBA{Float32}(0.0, 0.0, 0.0, 0.0)
    strokewidth = 0.0f0
Triggered by update of:
  position, text, arg1, fontsize, fonts, font, align, rotation, justification, lineheight, word_wrap_width, offset, fonts, color, colorscale, alpha, colorrange, colorscale, color, colorscale, alpha, colormap, alpha, nan_color, lowclip, colormap, alpha, highclip, colormap, alpha, colormap, alpha, strokecolor or strokewidth
Due to ERROR: Can't represent character * with any fallback font nor TeX Gyre Heros Makie!
Stacktrace:
  [1] error(s::String)
    @ Base ./error.jl:44
  [2] find_font_for_char(glyph::Char, font::FreeTypeAbstraction.FTFont)
    @ Makie ~/.julia/packages/Makie/4JW9B/src/utilities/texture_atlas.jl:249
  [3] (::Makie.var"#glyph_collection##0#glyph_collection##1"{…})(char::Char, _font::FreeTypeAbstraction.FTFont, scale::Float32)
    @ Makie ~/.julia/packages/Makie/4JW9B/src/layouting/text_layouting.jl:162
  [4] _broadcast_getindex_evalf
    @ ./broadcast.jl:699 [inlined]
  [5] _broadcast_getindex
    @ ./broadcast.jl:672 [inlined]
  [6] _getindex
    @ ./broadcast.jl:620 [inlined]
  [7] getindex
    @ ./broadcast.jl:616 [inlined]
  [8] macro expansion
    @ ./broadcast.jl:995 [inlined]
  [9] macro expansion
    @ ./simdloop.jl:77 [inlined]
 [10] copyto!
    @ ./broadcast.jl:994 [inlined]
 [11] copyto!
    @ ./broadcast.jl:947 [inlined]
 [12] copy
    @ ./broadcast.jl:919 [inlined]
 [13] materialize
    @ ./broadcast.jl:894 [inlined]
 [14] broadcast(::Makie.var"#glyph_collection##0#glyph_collection##1"{…}, ::Base.Generator{…}, ::FreeTypeAbstraction.FTFont, ::Float32)
    @ Base.Broadcast ./broadcast.jl:832
 [15] 
    @ Makie ~/.julia/packages/Makie/4JW9B/src/layouting/text_layouting.jl:161
 [16] glyph_collection
    @ ~/.julia/packages/Makie/4JW9B/src/layouting/text_layouting.jl:144 [inlined]
 [17] convert_text_string!(outputs::@NamedTuple{…}, input_text::String, i::Int64, N::Int64, fontsize::Float32, font::FreeTypeAbstraction.FTFont, align::Tuple{…}, rotation::Quaternionf, justification::Makie.Automatic, lineheight::Float64, word_wrap_width::Int64, offset::Vec{…}, fonts::Attributes, color::ColorTypes.RGBA{…}, strokecolor::ColorTypes.RGBA{…}, strokewidth::Float32)
    @ Makie ~/.julia/packages/Makie/4JW9B/src/basic_recipes/text.jl:187
 [18] (::Makie.var"#compute_glyph_collections!##0#compute_glyph_collections!##1")(::@NamedTuple{…}, changed::@NamedTuple{…}, cached::Nothing)
    @ Makie ~/.julia/packages/Makie/4JW9B/src/basic_recipes/text.jl:354
 [19] ComputePipeline.TypedEdge(edge::ComputePipeline.ComputeEdge{…}, f::Makie.var"#compute_glyph_collections!##0#compute_glyph_collections!##1", inputs::@NamedTuple{…})
    @ ComputePipeline ~/.julia/packages/ComputePipeline/03tW7/src/ComputePipeline.jl:126
 [20] ComputePipeline.TypedEdge(edge::ComputePipeline.ComputeEdge{ComputePipeline.ComputeGraph})
    @ ComputePipeline ~/.julia/packages/ComputePipeline/03tW7/src/ComputePipeline.jl:120
 [21] (::ComputePipeline.var"#resolve!##4#resolve!##5"{ComputePipeline.ComputeEdge{ComputePipeline.ComputeGraph}})()
    @ ComputePipeline ~/.julia/packages/ComputePipeline/03tW7/src/ComputePipeline.jl:664
 [22] lock(f::ComputePipeline.var"#resolve!##4#resolve!##5"{ComputePipeline.ComputeEdge{…}}, l::ReentrantLock)
    @ Base ./lock.jl:335
 [23] resolve!(edge::ComputePipeline.ComputeEdge{ComputePipeline.ComputeGraph})
    @ ComputePipeline ~/.julia/packages/ComputePipeline/03tW7/src/ComputePipeline.jl:659
 [24] _resolve!(computed::ComputePipeline.Computed)
    @ ComputePipeline ~/.julia/packages/ComputePipeline/03tW7/src/ComputePipeline.jl:652
 [25] foreach
    @ ./abstractarray.jl:3188 [inlined]
 [26] (::ComputePipeline.var"#resolve!##4#resolve!##5"{ComputePipeline.ComputeEdge{ComputePipeline.ComputeGraph}})()
    @ ComputePipeline ~/.julia/packages/ComputePipeline/03tW7/src/ComputePipeline.jl:661
--- the above 5 lines are repeated 1 more time ---
 [32] lock(f::ComputePipeline.var"#resolve!##4#resolve!##5"{ComputePipeline.ComputeEdge{…}}, l::ReentrantLock)
    @ Base ./lock.jl:335
 [33] resolve!(edge::ComputePipeline.ComputeEdge{ComputePipeline.ComputeGraph})
    @ ComputePipeline ~/.julia/packages/ComputePipeline/03tW7/src/ComputePipeline.jl:659
 [34] _resolve!(computed::ComputePipeline.Computed)
    @ ComputePipeline ~/.julia/packages/ComputePipeline/03tW7/src/ComputePipeline.jl:652
 [35] resolve!(computed::ComputePipeline.Computed)
    @ ComputePipeline ~/.julia/packages/ComputePipeline/03tW7/src/ComputePipeline.jl:644
 [36] getindex
    @ ~/.julia/packages/ComputePipeline/03tW7/src/ComputePipeline.jl:563 [inlined]
 [37] #_register_expand_arguments!##0
    @ ~/.julia/packages/Makie/4JW9B/src/compute-plots.jl:403 [inlined]
 [38] iterate
    @ ./generator.jl:48 [inlined]
 [39] _collect(c::Vector{…}, itr::Base.Generator{…}, ::Base.EltypeUnknown, isz::Base.HasShape{…})
    @ Base ./array.jl:810
 [40] collect_similar
    @ ./array.jl:732 [inlined]
 [41] map
    @ ./abstractarray.jl:3372 [inlined]
 [42] _register_expand_arguments!(::Type{…}, attr::ComputePipeline.ComputeGraph, inputs::Vector{…}, is_merged::Bool)
    @ Makie ~/.julia/packages/Makie/4JW9B/src/compute-plots.jl:403
 [43] _register_expand_arguments!
    @ ~/.julia/packages/Makie/4JW9B/src/compute-plots.jl:399 [inlined]
 [44] register_arguments!
    @ ~/.julia/packages/Makie/4JW9B/src/compute-plots.jl:377 [inlined]
 [45] (LineSegments)(user_args::Tuple{ComputePipeline.Computed}, user_attributes::Dict{Symbol, Any})
    @ Makie ~/.julia/packages/Makie/4JW9B/src/compute-plots.jl:742
 [46] _create_plot!(F::Function, attributes::Dict{Symbol, Any}, scene::Makie.Text{Tuple{…}}, args::ComputePipeline.Computed)
    @ Makie ~/.julia/packages/Makie/4JW9B/src/figureplotting.jl:410
 [47] linesegments!(::Makie.Text{…}, ::Vararg{…}; kw::@Kwargs{…})
    @ Makie ~/.julia/packages/Makie/4JW9B/src/recipes.jl:521
 [48] tex_linesegments!(plot::Makie.Text{Tuple{Vector{Point{2, Float32}}}})
    @ Makie ~/.julia/packages/Makie/4JW9B/src/basic_recipes/text.jl:452
 [49] calculated_attributes!
    @ ~/.julia/packages/Makie/4JW9B/src/basic_recipes/text.jl:431 [inlined]
 [50] connect_plot!(parent::Scene, plot::Makie.Text{Tuple{Vector{Point{2, Float32}}}})
    @ Makie ~/.julia/packages/Makie/4JW9B/src/compute-plots.jl:805
 [51] plot!(scene::Scene, plot::Makie.Text{Tuple{Vector{Point{2, Float32}}}})
    @ Makie ~/.julia/packages/Makie/4JW9B/src/interfaces.jl:211
 [52] _create_plot!(F::Function, attributes::Dict{Symbol, Any}, scene::Scene, args::Observable{Point{2, Float32}})
    @ Makie ~/.julia/packages/Makie/4JW9B/src/figureplotting.jl:411
 [53] text!(::Scene, ::Vararg{…}; kw::@Kwargs{…})
    @ Makie ~/.julia/packages/Makie/4JW9B/src/recipes.jl:521
 [54] Makie.LineAxis(parent::Scene, attrs::Attributes)
    @ Makie ~/.julia/packages/Makie/4JW9B/src/makielayout/lineaxis.jl:415
 [55] Makie.LineAxis(parent::Scene; kwargs...)
    @ Makie ~/.julia/packages/Makie/4JW9B/src/makielayout/lineaxis.jl:8
 [56] LineAxis
    @ ~/.julia/packages/Makie/4JW9B/src/makielayout/lineaxis.jl:6 [inlined]
 [57] initialize_block!(ax::Axis; palette::Nothing)
    @ Makie ~/.julia/packages/Makie/4JW9B/src/makielayout/blocks/axis.jl:362
 [58] initialize_block!(ax::Axis)
    @ Makie ~/.julia/packages/Makie/4JW9B/src/makielayout/blocks/axis.jl:154
 [59] _block(T::Type{…}, fig_or_scene::Figure, args::Vector{…}, kwdict::Dict{…}, bbox::Nothing; kwdict_complete::Bool)
    @ Makie ~/.julia/packages/Makie/4JW9B/src/makielayout/blocks.jl:405
 [60] _block(T::Type{Axis}, fig_or_scene::Figure, args::Vector{Any}, kwdict::Dict{Symbol, Any}, bbox::Nothing)
    @ Makie ~/.julia/packages/Makie/4JW9B/src/makielayout/blocks.jl:321
 [61] create_axis_for_plot(figure::Figure, plot::Lines{Tuple{Vector{Point{2, Float64}}}}, attributes::Dict{Symbol, Any})
    @ Makie ~/.julia/packages/Makie/4JW9B/src/figureplotting.jl:113
 [62] create_axis_like(plot::Lines{Tuple{Vector{Point{2, Float64}}}}, attributes::Dict{Symbol, Any}, ::Nothing)
    @ Makie ~/.julia/packages/Makie/4JW9B/src/figureplotting.jl:205
 [63] _create_plot(F::Function, attributes::Dict{Symbol, Any}, args::UnitRange{Int64})
    @ Makie ~/.julia/packages/Makie/4JW9B/src/figureplotting.jl:329
 [64] #lines#45
    @ ~/.julia/packages/Makie/4JW9B/src/recipes.jl:517 [inlined]
Some type information was truncated. Use `show(err)` to see complete types.

Metadata

Metadata

Assignees

No one assigned

    Labels

    regressionThis issue describes a regression from a previous version or commit.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions