Skip to content

Too many scenes? InexactError: trunc(UInt8, 256) #2013

@tecosaur

Description

@tecosaur

I'm trying to make a Makie widget for visualising a collection of data in my work. However, I'm running into this truncation error very frequently, and it's making it hard if not impossibly to actually interact with this widget.

To give you an idea of the complexity of my widget, here's a screenshot:

image

There are a lot of observables tieing various bits of this together.

Here's the stacktrace of the error:
Error in callback:
InexactError: trunc(UInt8, 256)
Stacktrace:
  [1] throw_inexacterror(f::Symbol, #unused#::Type{UInt8}, val::Int64)
    @ Core ./boot.jl:612
  [2] checked_trunc_uint
    @ ./boot.jl:642 [inlined]
  [3] toUInt8
    @ ./boot.jl:704 [inlined]
  [4] UInt8
    @ ./boot.jl:764 [inlined]
  [5] convert
    @ ./number.jl:7 [inlined]
  [6] cvt1
    @ ./essentials.jl:343 [inlined]
  [7] ntuple
    @ ./ntuple.jl:49 [inlined]
  [8] convert
    @ ./essentials.jl:344 [inlined]
  [9] push!
    @ ./array.jl:994 [inlined]
 [10] #53
    @ ~/.julia/packages/GLMakie/vwLnZ/src/screen.jl:259 [inlined]
 [11] get!(default::GLMakie.var"#53#55"{GLMakie.Screen, Scene}, h::Dict{WeakRef, UInt8}, key::WeakRef)
    @ Base ./dict.jl:464
 [12] push!(screen::GLMakie.Screen, scene::Scene, robj::GLMakie.GLAbstraction.RenderObject{GLMakie.GLAbstraction.StandardPrerender})
    @ GLMakie ~/.julia/packages/GLMakie/vwLnZ/src/screen.jl:257
 [13] cached_robj!(robj_func::GLMakie.var"#137#148"{Scene, MakieCore.Text{Tuple{Makie.GlyphCollection}}}, screen::GLMakie.Screen, scene::Scene, x::MakieCore.Text{Tuple{Makie.GlyphCollection}})
    @ GLMakie ~/.julia/packages/GLMakie/vwLnZ/src/drawing_primitives.jl:113
 [14] draw_atomic
    @ ~/.julia/packages/GLMakie/vwLnZ/src/drawing_primitives.jl:304 [inlined]
 [15] insert!
    @ ~/.julia/packages/GLMakie/vwLnZ/src/drawing_primitives.jl:121 [inlined]
 [16] (::GLMakie.var"#113#114"{GLMakie.Screen, Scene})(x::MakieCore.Text{Tuple{Makie.GlyphCollection}})
    @ GLMakie ~/.julia/packages/GLMakie/vwLnZ/src/drawing_primitives.jl:126
 [17] foreach(f::GLMakie.var"#113#114"{GLMakie.Screen, Scene}, itr::Vector{AbstractPlot})
    @ Base ./abstractarray.jl:2694
 [18] insert!(screen::GLMakie.Screen, scene::Scene, x::Combined)
    @ GLMakie ~/.julia/packages/GLMakie/vwLnZ/src/drawing_primitives.jl:123
 [19] push!(scene::Scene, plot::MakieCore.Text{Tuple{String}})
    @ Makie ~/.julia/packages/Makie/fEZv2/src/scenes.jl:409
 [20] plot!(scene::Scene, P::Type{MakieCore.Text{Tuple{String}}}, attributes::Attributes, input::Tuple{Observable{Any}}, args::Observable{Tuple{String}})
    @ Makie ~/.julia/packages/Makie/fEZv2/src/interfaces.jl:403
 [21] plot!(scene::Scene, P::Type{MakieCore.Text}, attributes::Attributes, args::Observable{Any}; kw_attributes::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ Makie ~/.julia/packages/Makie/fEZv2/src/interfaces.jl:320
 [22] plot!
    @ ~/.julia/packages/Makie/fEZv2/src/interfaces.jl:288 [inlined]
 [23] #plot!#137
    @ ~/.julia/packages/Makie/fEZv2/src/interfaces.jl:271 [inlined]
 [24] #text!#52
    @ ~/.julia/packages/MakieCore/oBlaS/src/recipes.jl:37 [inlined]
 [25] initialize_block!(l::Label)
    @ Makie.MakieLayout ~/.julia/packages/Makie/fEZv2/src/makielayout/blocks/label.jl:11
 [26] _block(::Type{Label}, ::Scene; bbox::Nothing, kwargs::Base.Pairs{Symbol, Any, NTuple{7, Symbol}, NamedTuple{(:text, :halign, :tellwidth, :textsize, :color, :padding, :visible), Tuple{String, Symbol, Bool, Observable{Any}, Observable{Any}, Observable{Any}, Observable{Any}}}})
    @ Makie.MakieLayout ~/.julia/packages/Makie/fEZv2/src/makielayout/blocks.jl:395
 [27] #_#38
    @ ~/.julia/packages/Makie/fEZv2/src/makielayout/blocks.jl:269 [inlined]
 [28] #Label#552
    @ ~/.julia/packages/Makie/fEZv2/src/makielayout/blocks/label.jl:1 [inlined]
 [29] _reassemble_menu(m::Menu, scene::Scene, selectionrect::Box, selectiontext::Label, allrects::Vector{Box}, alltexts::Vector{Label}, mouseeventhandles::Vector{Makie.MakieLayout.MouseEventHandle}, contentgrid::GridLayout, optionstrings::Base.RefValue{Vector{String}})
    @ Makie.MakieLayout ~/.julia/packages/Makie/fEZv2/src/makielayout/blocks/menu.jl:257
 [30] (::Makie.MakieLayout.var"#771#783"{Menu, Vector{Makie.MakieLayout.MouseEventHandle}, Vector{Label}, Vector{Box}, Label, Observable{String}, Base.RefValue{Vector{String}}, Box, GridLayout, Scene})(options::Vector{String})
    @ Makie.MakieLayout ~/.julia/packages/Makie/fEZv2/src/makielayout/blocks/menu.jl:116
 [31] #invokelatest#2
    @ ./essentials.jl:716 [inlined]
 [32] invokelatest
    @ ./essentials.jl:714 [inlined]
 [33] notify(observable::AbstractObservable)
    @ Main /tmp/varppi/dataviewer.jl:43
 [34] setindex!(observable::Observable, val::Any)
    @ Observables ~/.julia/packages/Observables/ynr7h/src/Observables.jl:86
 [35] #15
    @ ~/.julia/packages/Observables/ynr7h/src/Observables.jl:393 [inlined]
 [36] (::Observables.var"#callback#13"{Observables.var"#15#16"{Makie.MakieLayout.var"#53#54"{DataType}, Observable{Any}}, Tuple{Observable{Vector{String}}}})(x::Any)
    @ Observables ~/.julia/packages/Observables/ynr7h/src/Observables.jl:339
 [37] #invokelatest#2
    @ ./essentials.jl:716 [inlined]
 [38] invokelatest
    @ ./essentials.jl:714 [inlined]
 [39] notify(observable::AbstractObservable)
    @ Main /tmp/varppi/dataviewer.jl:43
 [40] setindex!(observable::Observable, val::Any)
    @ Observables ~/.julia/packages/Observables/ynr7h/src/Observables.jl:86
 [41] (::Observables.var"#15#16"{var"#43#63", Observable{Vector{String}}})(args::Vector{String})
    @ Observables ~/.julia/packages/Observables/ynr7h/src/Observables.jl:393
--- the last 6 lines are repeated 1 more time ---
 [48] (::Observables.var"#callback#13"{Observables.var"#15#16"{var"#42#62", Observable{Union{Nothing, Vector{String}}}}, Tuple{Observable{Union{Nothing, DataFrame}}, Observable{Union{Nothing, DataFrame}}}})(x::Any)
    @ Observables ~/.julia/packages/Observables/ynr7h/src/Observables.jl:339
 [49] #invokelatest#2
    @ ./essentials.jl:716 [inlined]
 [50] invokelatest
    @ ./essentials.jl:714 [inlined]
 [51] notify(observable::AbstractObservable)
    @ Main /tmp/varppi/dataviewer.jl:43
 [52] setindex!(observable::Observable, val::Any)
    @ Observables ~/.julia/packages/Observables/ynr7h/src/Observables.jl:86
 [53] #15
    @ ~/.julia/packages/Observables/ynr7h/src/Observables.jl:393 [inlined]
 [54] (::Observables.var"#callback#13"{Observables.var"#15#16"{var"#loadstats#60", Observable{Union{Nothing, DataFrame}}}, Tuple{Observable{Any}}})(x::Any)
    @ Observables ~/.julia/packages/Observables/ynr7h/src/Observables.jl:339
 [55] #invokelatest#2
    @ ./essentials.jl:716 [inlined]
 [56] invokelatest
    @ ./essentials.jl:714 [inlined]
 [57] notify(observable::AbstractObservable)
    @ Main /tmp/varppi/dataviewer.jl:43
 [58] setindex!(observable::Observable, val::Any)
    @ Observables ~/.julia/packages/Observables/ynr7h/src/Observables.jl:86
 [59] (::Makie.MakieLayout.var"#776#788"{Menu})(i::Int64)
    @ Makie.MakieLayout ~/.julia/packages/Makie/fEZv2/src/makielayout/blocks/menu.jl:206
 [60] #invokelatest#2
    @ ./essentials.jl:716 [inlined]
 [61] invokelatest
    @ ./essentials.jl:714 [inlined]
 [62] notify(observable::AbstractObservable)
    @ Main /tmp/varppi/dataviewer.jl:43
 [63] setindex!(observable::Observable, val::Any)
    @ Observables ~/.julia/packages/Observables/ynr7h/src/Observables.jl:86
 [64] (::Makie.MakieLayout.var"#793#797"{Menu, Vector{Box}, Box, Int64})(#unused#::MouseEvent)
    @ Makie.MakieLayout ~/.julia/packages/Makie/fEZv2/src/makielayout/blocks/menu.jl:316
 [65] (::Makie.MakieLayout.var"#67#68"{Makie.MakieLayout.var"#793#797"{Menu, Vector{Box}, Box, Int64}})(event::MouseEvent)
    @ Makie.MakieLayout ~/.julia/packages/Makie/fEZv2/src/makielayout/mousestatemachine.jl:86
 [66] #invokelatest#2
    @ ./essentials.jl:716 [inlined]
 [67] invokelatest
    @ ./essentials.jl:714 [inlined]
 [68] notify(observable::AbstractObservable)
    @ Main /tmp/varppi/dataviewer.jl:43
 [69] setindex!
    @ ~/.julia/packages/Observables/ynr7h/src/Observables.jl:86 [inlined]
 [70] (::Makie.MakieLayout.var"#137#139"{Scene, Base.RefValue{Bool}, Base.RefValue{Union{Nothing, Makie.Mouse.Button}}, Base.RefValue{Float64}, Base.RefValue{Float64}, Base.RefValue{Bool}, Base.RefValue{Bool}, Base.RefValue{Union{Nothing, Makie.Mouse.Button}}, Base.RefValue{Bool}, Base.RefValue{Point{2, Float32}}, Base.RefValue{Point{2, Float32}}, Base.RefValue{Makie.Mouse.Action}, Observable{MouseEvent}, Float64, Module})(event::Makie.MouseButtonEvent)
    @ Makie.MakieLayout ~/.julia/packages/Makie/fEZv2/src/makielayout/mousestatemachine.jl:256
 [71] #invokelatest#2
    @ ./essentials.jl:716 [inlined]
 [72] invokelatest
    @ ./essentials.jl:714 [inlined]
 [73] notify(observable::AbstractObservable)
    @ Main /tmp/varppi/dataviewer.jl:43
 [74] setindex!
    @ ~/.julia/packages/Observables/ynr7h/src/Observables.jl:86 [inlined]
 [75] (::GLMakie.var"#mousebuttons#82"{Observable{Makie.MouseButtonEvent}})(window::GLFW.Window, button::GLFW.MouseButton, action::GLFW.Action, mods::Int32)
    @ GLMakie ~/.julia/packages/GLMakie/vwLnZ/src/events.jl:89
 [76] _MouseButtonCallbackWrapper(window::GLFW.Window, button::GLFW.MouseButton, action::GLFW.Action, mods::Int32)
    @ GLFW ~/.julia/packages/GLFW/BWxfF/src/callback.jl:43
 [77] PollEvents
    @ ~/.julia/packages/GLFW/BWxfF/src/glfw3.jl:620 [inlined]
 [78] pollevents
    @ ~/.julia/packages/GLMakie/vwLnZ/src/screen.jl:587 [inlined]
 [79] fps_renderloop(screen::GLMakie.Screen, framerate::Float64)
    @ GLMakie ~/.julia/packages/GLMakie/vwLnZ/src/rendering.jl:21
 [80] renderloop(screen::GLMakie.Screen; framerate::Float64)
    @ GLMakie ~/.julia/packages/GLMakie/vwLnZ/src/rendering.jl:48
 [81] renderloop(screen::GLMakie.Screen)
    @ GLMakie ~/.julia/packages/GLMakie/vwLnZ/src/rendering.jl:41

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions