redox-os / orbtk

The Rust UI-Toolkit.
MIT License
3.77k stars 191 forks source link

Panic when trying to implement plotters backend. #343

Open arctic-alpaca opened 4 years ago

arctic-alpaca commented 4 years ago

Hello

Describe the bug I'm working on creating an OrbTk backend for plotters. This is working alright, but I encountered a problem. When trying to create this example, a component of raqote panics with thread 'main' panicked at 'attempt to add with overflow', C:\Users\xyz\.cargo\registry\src\github.com-1ecc6299db9ec823\sw-composite-0.7.13\src\lib.rs:893:7. When using cargo run --release, the code doesn't panic but the plot isn't displayed properly.

I'm not sure what or why this is happening and my attemps at creating a minimal example failed.

To Reproduce Steps to reproduce the behavior:

  1. Clone https://github.com/arctic-alpaca/plotters_in_orbtk.git
  2. cargo run to see the panic or cargo run --release to see the broken plot

Expected behavior The code shouldn't panic and the plot should be displayed correctly.

Screenshots How the plot should look like:

68747470733a2f2f706c6f74746572732d72732e6769746875622e696f2f706c6f74746572732d646f632d646174612f686973746f6772616d2e706e67

How it does look like: plotters_in_orbtk

Desktop (please complete the following information):

Additional context

Backtrace

``` Running `target\debug\plotters_in_orbtk.exe` thread 'main' panicked at 'attempt to add with overflow', C:\Users\xyz\.cargo\registry\src\github.com-1ecc6299db9ec823\sw-composite-0.7.13\src\lib.rs:893:7 stack backtrace: 0: 0x101afeb - backtrace::backtrace::dbghelp::trace::ha09940ef4b8fd9a2 at C:\Users\runneradmin\.cargo\registry\src\github.com-1ecc6299db9ec823\backtrace-0.3.46\src\backtrace/dbghelp.rs:88 1: 0x101afeb - backtrace::backtrace::trace_unsynchronized::h19d7d1b30f96fe6c at C:\Users\runneradmin\.cargo\registry\src\github.com-1ecc6299db9ec823\backtrace-0.3.46\src\backtrace/mod.rs:66 2: 0x101afeb - std::sys_common::backtrace::_print_fmt::hf038dfff95c497df at src\libstd\sys_common/backtrace.rs:78 3: 0x101afeb - ::fmt::he2295693089d2e8c at src\libstd\sys_common/backtrace.rs:59 4: 0x104698c - core::fmt::write::h2e7468e40976ea37 at src\libcore\fmt/mod.rs:1076 5: 0x100c689 - std::io::Write::write_fmt::hef3158223e737cb6 at src\libstd\io/mod.rs:1537 6: 0x101f820 - std::sys_common::backtrace::_print::he4a39cb956ba394d at src\libstd\sys_common/backtrace.rs:62 7: 0x101f820 - std::sys_common::backtrace::print::h38d45a7d7a4d1f02 at src\libstd\sys_common/backtrace.rs:49 8: 0x101f820 - std::panicking::default_hook::{{closure}}::hfcc0d2f90e4d71be at src\libstd/panicking.rs:198 9: 0x101f4a9 - std::panicking::default_hook::h7e61c8ee936a661d at src\libstd/panicking.rs:217 10: 0x101ff5d - std::panicking::rust_panic_with_hook::h8b0608bd552a3d13 at src\libstd/panicking.rs:526 11: 0x101fb74 - rust_begin_unwind at src\libstd/panicking.rs:437 12: 0x10432d0 - core::panicking::panic_fmt::h858651244c7bf662 at src\libcore/panicking.rs:85 13: 0x104321c - core::panicking::panic::h3d3bbc55f27215e0 at src\libcore/panicking.rs:50 14: 0xb60982 - sw_composite::over_in::h282ad0b132fae7c7 at C:\Users\xyz\.cargo\registry\src\github.com-1ecc6299db9ec823\sw-composite-0.7.13\src/lib.rs:893 15: 0xb53f70 - ::blit_span::h8f738c757f051f98 at C:\Users\xyz\.cargo\git\checkouts\raqote-b0d3fc5b6a6a3416\d21bcda\src/blitter.rs:468 16: 0xb4cbc3 - raqote::draw_target::DrawTarget::composite::he707b14ced8549ea at C:\Users\xyz\.cargo\git\checkouts\raqote-b0d3fc5b6a6a3416\d21bcda\src/draw_target.rs:949 17: 0xb4b119 - raqote::draw_target::DrawTarget::fill::h14f30db3bc3dd4f3 at C:\Users\xyz\.cargo\git\checkouts\raqote-b0d3fc5b6a6a3416\d21bcda\src/draw_target.rs:704 18: 0xb4a604 - raqote::draw_target::DrawTarget::stroke::hc98438d58da12c7b at C:\Users\xyz\.cargo\git\checkouts\raqote-b0d3fc5b6a6a3416\d21bcda\src/draw_target.rs:655 19: 0xb1b157 - orbtk_render::platform::RenderContext2D::stroke::hd3dcae43aff925ab at C:\Users\xyz\.cargo\git\checkouts\orbtk-90d798f349c2ab56\eb4492c\crates\render\src\raqote/mod.rs:183 20: 0x43a4fc - ::draw_line::h7db47e4a05807778 at C:\Users\xyz\CLionProjects\plotters_in_orbtk\orbtk_backend\src/backend.rs:94 21: 0x42a767 - plotters::coord::ranged2d::cartesian::MeshLine::draw::h3e367523dbc112a0 at C:\Users\xyz\.cargo\registry\src\github.com-1ecc6299db9ec823\plotters-0.3.0\src\coord\ranged2d/cartesian.rs:150 22: 0x433b91 - plotters::chart::context::ChartContext>::draw_mesh_lines::{{closure}}::h6434ff939ca339eb at C:\Users\xyz\.cargo\registry\src\github.com-1ecc6299db9ec823\plotters-0.3.0\src\chart/context.rs:188 23: 0x440474 - plotters::drawing::area::DrawingArea>::draw_mesh::{{closure}}::{{closure}}::he23379c00076231e at C:\Users\xyz\.cargo\registry\src\github.com-1ecc6299db9ec823\plotters-0.3.0\src\drawing/area.rs:200 24: 0x42b032 - plotters::coord::ranged2d::cartesian::Cartesian2d::draw_mesh::h0d8cb2f67db42bb7 at C:\Users\xyz\.cargo\registry\src\github.com-1ecc6299db9ec823\plotters-0.3.0\src\coord\ranged2d/cartesian.rs:72 25: 0x440307 - plotters::drawing::area::DrawingArea>::draw_mesh::{{closure}}::haedd2c20c591ddaa at C:\Users\xyz\.cargo\registry\src\github.com-1ecc6299db9ec823\plotters-0.3.0\src\drawing/area.rs:199 26: 0x43cc14 - plotters::drawing::area::DrawingArea::backend_ops::h69a138dce0fda22d at C:\Users\xyz\.cargo\registry\src\github.com-1ecc6299db9ec823\plotters-0.3.0\src\drawing/area.rs:277 27: 0x440139 - plotters::drawing::area::DrawingArea>::draw_mesh::h113aae9e0537bae4 at C:\Users\xyz\.cargo\registry\src\github.com-1ecc6299db9ec823\plotters-0.3.0\src\drawing/area.rs:198 28: 0x43368e - plotters::chart::context::ChartContext>::draw_mesh_lines::ha0b5f09dc6e6bcfb at C:\Users\xyz\.cargo\registry\src\github.com-1ecc6299db9ec823\plotters-0.3.0\src\chart/context.rs:170 29: 0x437cb9 - plotters::chart::context::ChartContext>::draw_mesh::h47dcb03886dff824 at C:\Users\xyz\.cargo\registry\src\github.com-1ecc6299db9ec823\plotters-0.3.0\src\chart/context.rs:481 30: 0x449b10 - plotters::chart::mesh::MeshStyle::draw::had68e67be7a163a1 at C:\Users\xyz\.cargo\registry\src\github.com-1ecc6299db9ec823\plotters-0.3.0\src\chart/mesh.rs:463 31: 0x41e4fc - ::draw::hfb7bc0e79fcac0aa at src/main.rs:36 32: 0x42bf33 - orbtk_render::PipelineTrait::draw_pipeline::h0f3b61e835f8c6b6 at C:\Users\xyz\.cargo\git\checkouts\orbtk-90d798f349c2ab56\eb4492c\crates\render\src/lib.rs:122 33: 0xb1ca27 - orbtk_render::platform::RenderContext2D::draw_pipeline::hf944ae1c1abb44d2 at C:\Users\xyz\.cargo\git\checkouts\orbtk-90d798f349c2ab56\eb4492c\crates\render\src\raqote/mod.rs:352 34: 0x996d36 - ::render_self::h5bf0bcaf5f18fb91 at C:\Users\xyz\.cargo\git\checkouts\orbtk-90d798f349c2ab56\eb4492c\crates\api\src\render_object/pipeline.rs:15 35: 0x997f31 - orbtk_api::render_object::RenderObject::render::h73f17b5c511777e9 at C:\Users\xyz\.cargo\git\checkouts\orbtk-90d798f349c2ab56\eb4492c\crates\api\src\render_object/mod.rs:80 36: 0xa4a973 - orbtk_api::render_object::RenderObject::render_children::h19ea94a6fd62e58b at C:\Users\xyz\.cargo\git\checkouts\orbtk-90d798f349c2ab56\eb4492c\crates\api\src\render_object/mod.rs:151 37: 0xa4a5be - orbtk_api::render_object::RenderObject::render::hffc8267db4da09a4 at C:\Users\xyz\.cargo\git\checkouts\orbtk-90d798f349c2ab56\eb4492c\crates\api\src\render_object/mod.rs:103 38: 0x9d3c43 - orbtk_api::render_object::RenderObject::render_children::h4add76e8cda2515d at C:\Users\xyz\.cargo\git\checkouts\orbtk-90d798f349c2ab56\eb4492c\crates\api\src\render_object/mod.rs:151 39: 0x9d386e - orbtk_api::render_object::RenderObject::render::h98b5b9302dceef47 at C:\Users\xyz\.cargo\git\checkouts\orbtk-90d798f349c2ab56\eb4492c\crates\api\src\render_object/mod.rs:103 40: 0xa4a973 - orbtk_api::render_object::RenderObject::render_children::h19ea94a6fd62e58b at C:\Users\xyz\.cargo\git\checkouts\orbtk-90d798f349c2ab56\eb4492c\crates\api\src\render_object/mod.rs:151 41: 0xa4a5be - orbtk_api::render_object::RenderObject::render::hffc8267db4da09a4 at C:\Users\xyz\.cargo\git\checkouts\orbtk-90d798f349c2ab56\eb4492c\crates\api\src\render_object/mod.rs:103 42: 0x98e8ca - >::run_with_context::h4167becef8e66cee at C:\Users\xyz\.cargo\git\checkouts\orbtk-90d798f349c2ab56\eb4492c\crates\api\src\systems/render_system.rs:64 43: 0x9e2caa - dces::world::World::run_with_context::h43c0298dd70b869f at C:\Users\xyz\.cargo\git\checkouts\dces-rust-0e90bfa1cf1cf6e4\df014f1\src/world.rs:144 44: 0x9c5993 - ::run::hdbae44ff593edccb at C:\Users\xyz\.cargo\git\checkouts\orbtk-90d798f349c2ab56\eb4492c\crates\api\src\application/window_adapter.rs:181 45: 0x9909b3 - orbtk_shell::platform::window::Window::update::h57ce978b6bf83053 at C:\Users\xyz\.cargo\git\checkouts\orbtk-90d798f349c2ab56\eb4492c\crates\shell\src\orbclient/window.rs:333 46: 0x9f8efc - orbtk_shell::platform::Shell::run::ha38887c8120f1ff9 at C:\Users\xyz\.cargo\git\checkouts\orbtk-90d798f349c2ab56\eb4492c\crates\shell\src\orbclient/mod.rs:81 47: 0xa54998 - orbtk_api::application::Application::run::h184b95337e81f035 at C:\Users\xyz\.cargo\git\checkouts\orbtk-90d798f349c2ab56\eb4492c\crates\api\src\application/mod.rs:96 48: 0x41ecb5 - plotters_in_orbtk::main::hc261195bf5854dbf at src/main.rs:100 49: 0x42c44b - std::rt::lang_start::{{closure}}::h2e091574df4ad394 at C:\Users\xyz\.rustup\toolchains\stable-x86_64-pc-windows-gnu\lib/rustlib/src/rust\src\libstd/rt.rs:67 50: 0x102021c - std::rt::lang_start_internal::{{closure}}::hcfe58f53feea7233 at src\libstd/rt.rs:52 51: 0x102021c - std::panicking::try::do_call::hc4163588b8559d85 at src\libstd/panicking.rs:348 52: 0x102021c - std::panicking::try::h310a3be58418d841 at src\libstd/panicking.rs:325 53: 0x102021c - std::panic::catch_unwind::h52728a6ebc96df5e at src\libstd/panic.rs:394 54: 0x102021c - std::rt::lang_start_internal::ha1701ac7d300255b at src\libstd/rt.rs:51 55: 0x42c423 - std::rt::lang_start::h1bcb8ae6d7ac1b31 at C:\Users\xyz\.rustup\toolchains\stable-x86_64-pc-windows-gnu\lib/rustlib/src/rust\src\libstd/rt.rs:67 56: 0x42180c - main 57: 0x4013c7 - _tmainCRTStartup 58: 0x4014fb - mainCRTStartup 59: 0x7fffbec47bd4 - _report_error 60: 0x7fffbf3ece51 - _report_error error: process didn't exit successfully: `target\debug\plotters_in_orbtk.exe` (exit code: 101) ```

I tried a different example with success, so I hope my backend isn't the cause.

FloVanGH commented 4 years ago

Nice work. Thank you I will check that.

FloVanGH commented 4 years ago

I've created an issue also on the raqote repo: https://github.com/jrmuizel/raqote/issues/162

arctic-alpaca commented 4 years ago

Thank you.

I forgot to include the modified version of the plotters_backend crate in the repository, this should be fixed now. This doesn't impact the original problem.

arctic-alpaca commented 3 years ago

I could implement the plotters backend in raqote without issues. I didn't deal with the text portion of the backend, but that doesn't cause the panic issue in OrbTK either (but it probably does cause the clipped text in the top left).

I suspect, that the issue lies in the interaction of OrbTk and raqote or I'm not using the OrbTk drawing API correctly.

The panic seems to have changed location since I posted this issue. Maybe this is related to your commit d274938.

Current backtrace

``` thread 'main' panicked at 'attempt to add with overflow', C:\Users\xyz\.cargo\registry\src\github.com-1ecc6299db9ec823\sw-composite-0.7.13\src\lib.rs:806:7 stack backtrace: 0: 0xfcb5ab - backtrace::backtrace::dbghelp::trace::ha09940ef4b8fd9a2 at C:\Users\runneradmin\.cargo\registry\src\github.com-1ecc6299db9ec823\backtrace-0.3.46\src\backtrace/dbghelp.rs:88 1: 0xfcb5ab - backtrace::backtrace::trace_unsynchronized::h19d7d1b30f96fe6c at C:\Users\runneradmin\.cargo\registry\src\github.com-1ecc6299db9ec823\backtrace-0.3.46\src\backtrace/mod.rs:66 2: 0xfcb5ab - std::sys_common::backtrace::_print_fmt::hf038dfff95c497df at src\libstd\sys_common/backtrace.rs:78 3: 0xfcb5ab - ::fmt::he2295693089d2e8c at src\libstd\sys_common/backtrace.rs:59 4: 0xff6f4c - core::fmt::write::h2e7468e40976ea37 at src\libcore\fmt/mod.rs:1076 5: 0xfbcc49 - std::io::Write::write_fmt::hef3158223e737cb6 at src\libstd\io/mod.rs:1537 6: 0xfcfde0 - std::sys_common::backtrace::_print::he4a39cb956ba394d at src\libstd\sys_common/backtrace.rs:62 7: 0xfcfde0 - std::sys_common::backtrace::print::h38d45a7d7a4d1f02 at src\libstd\sys_common/backtrace.rs:49 8: 0xfcfde0 - std::panicking::default_hook::{{closure}}::hfcc0d2f90e4d71be at src\libstd/panicking.rs:198 9: 0xfcfa69 - std::panicking::default_hook::h7e61c8ee936a661d at src\libstd/panicking.rs:217 10: 0xfd051d - std::panicking::rust_panic_with_hook::h8b0608bd552a3d13 at src\libstd/panicking.rs:526 11: 0xfd0134 - rust_begin_unwind at src\libstd/panicking.rs:437 12: 0xff3890 - core::panicking::panic_fmt::h858651244c7bf662 at src\libcore/panicking.rs:85 13: 0xff37dc - core::panicking::panic::h3d3bbc55f27215e0 at src\libcore/panicking.rs:50 14: 0xb10522 - sw_composite::over_in::h282ad0b132fae7c7 at C:\Users\xyz\.cargo\registry\src\github.com-1ecc6299db9ec823\sw-composite-0.7.13\src/lib.rs:806 15: 0xb03b10 - ::blit_span::h8f738c757f051f98 at C:\Users\xyz\.cargo\git\checkouts\raqote-b0d3fc5b6a6a3416\d21bcda\src/blitter.rs:468 16: 0xafc763 - raqote::draw_target::DrawTarget::composite::he707b14ced8549ea at C:\Users\xyz\.cargo\git\checkouts\raqote-b0d3fc5b6a6a3416\d21bcda\src/draw_target.rs:949 17: 0xafacb9 - raqote::draw_target::DrawTarget::fill::h14f30db3bc3dd4f3 at C:\Users\xyz\.cargo\git\checkouts\raqote-b0d3fc5b6a6a3416\d21bcda\src/draw_target.rs:704 18: 0xafa1a4 - raqote::draw_target::DrawTarget::stroke::hc98438d58da12c7b at C:\Users\xyz\.cargo\git\checkouts\raqote-b0d3fc5b6a6a3416\d21bcda\src/draw_target.rs:655 19: 0xac7787 - orbtk_render::platform::RenderContext2D::stroke::hd3dcae43aff925ab at C:\Users\xyz\.cargo\git\checkouts\orbtk-90d798f349c2ab56\b3b4a0d\crates\render\src\raqote/mod.rs:186 20: 0x45d83c - ::draw_line::hebab7ee340950313 at C:\Users\xyz\Desktop\plotters_in_orbtk\orbtk_backend\src/backend.rs:94 21: 0x45e9c7 - plotters::coord::ranged2d::cartesian::MeshLine::draw::h3958351826950f62 at C:\Users\xyz\Desktop\plotters_in_orbtk\plotters\src\coord\ranged2d/cartesian.rs:150 22: 0x402ef1 - plotters::chart::context::ChartContext>::draw_mesh_lines::{{closure}}::heada7271e1b911d6 at C:\Users\xyz\Desktop\plotters_in_orbtk\plotters\src\chart/context.rs:188 23: 0x42e874 - plotters::drawing::area::DrawingArea>::draw_mesh::{{closure}}::{{closure}}::hc1a0e391af6812a2 at C:\Users\xyz\Desktop\plotters_in_orbtk\plotters\src\drawing/area.rs:200 24: 0x45f292 - plotters::coord::ranged2d::cartesian::Cartesian2d::draw_mesh::h2953b7a921e8e727 at C:\Users\xyz\Desktop\plotters_in_orbtk\plotters\src\coord\ranged2d/cartesian.rs:72 25: 0x42e667 - plotters::drawing::area::DrawingArea>::draw_mesh::{{closure}}::h487f0bb0136ea3b4 at C:\Users\xyz\Desktop\plotters_in_orbtk\plotters\src\drawing/area.rs:199 26: 0x42b044 - plotters::drawing::area::DrawingArea::backend_ops::h6abc0dc482148840 at C:\Users\xyz\Desktop\plotters_in_orbtk\plotters\src\drawing/area.rs:277 27: 0x42e5f9 - plotters::drawing::area::DrawingArea>::draw_mesh::hb1ae681e9667b87e at C:\Users\xyz\Desktop\plotters_in_orbtk\plotters\src\drawing/area.rs:198 28: 0x40266e - plotters::chart::context::ChartContext>::draw_mesh_lines::h7122fd310ddf45b1 at C:\Users\xyz\Desktop\plotters_in_orbtk\plotters\src\chart/context.rs:170 29: 0x407869 - plotters::chart::context::ChartContext>::draw_mesh::h9048f902d0040524 at C:\Users\xyz\Desktop\plotters_in_orbtk\plotters\src\chart/context.rs:481 30: 0x43a320 - plotters::chart::mesh::MeshStyle::draw::h83efbf474b97e44e at C:\Users\xyz\Desktop\plotters_in_orbtk\plotters\src\chart/mesh.rs:463 31: 0x45584c - ::draw::h1f50f03c06b67390 at src/main.rs:36 32: 0x453a03 - orbtk_render::PipelineTrait::draw_pipeline::h46ec13c253a02833 at C:\Users\xyz\.cargo\git\checkouts\orbtk-90d798f349c2ab56\b3b4a0d\crates\render\src/lib.rs:122 33: 0xac9057 - orbtk_render::platform::RenderContext2D::draw_pipeline::hf944ae1c1abb44d2 at C:\Users\xyz\.cargo\git\checkouts\orbtk-90d798f349c2ab56\b3b4a0d\crates\render\src\raqote/mod.rs:355 34: 0x948c96 - ::render_self::h5bf0bcaf5f18fb91 at C:\Users\xyz\.cargo\git\checkouts\orbtk-90d798f349c2ab56\b3b4a0d\crates\api\src\render_object/pipeline.rs:15 35: 0x949e91 - orbtk_api::render_object::RenderObject::render::h73f17b5c511777e9 at C:\Users\xyz\.cargo\git\checkouts\orbtk-90d798f349c2ab56\b3b4a0d\crates\api\src\render_object/mod.rs:80 36: 0x9ec463 - orbtk_api::render_object::RenderObject::render_children::h19ea94a6fd62e58b at C:\Users\xyz\.cargo\git\checkouts\orbtk-90d798f349c2ab56\b3b4a0d\crates\api\src\render_object/mod.rs:151 37: 0x9ec0ae - orbtk_api::render_object::RenderObject::render::hffc8267db4da09a4 at C:\Users\xyz\.cargo\git\checkouts\orbtk-90d798f349c2ab56\b3b4a0d\crates\api\src\render_object/mod.rs:103 38: 0x977e43 - orbtk_api::render_object::RenderObject::render_children::h4add76e8cda2515d at C:\Users\xyz\.cargo\git\checkouts\orbtk-90d798f349c2ab56\b3b4a0d\crates\api\src\render_object/mod.rs:151 39: 0x977a6e - orbtk_api::render_object::RenderObject::render::h98b5b9302dceef47 at C:\Users\xyz\.cargo\git\checkouts\orbtk-90d798f349c2ab56\b3b4a0d\crates\api\src\render_object/mod.rs:103 40: 0x9ec463 - orbtk_api::render_object::RenderObject::render_children::h19ea94a6fd62e58b at C:\Users\xyz\.cargo\git\checkouts\orbtk-90d798f349c2ab56\b3b4a0d\crates\api\src\render_object/mod.rs:151 41: 0x9ec0ae - orbtk_api::render_object::RenderObject::render::hffc8267db4da09a4 at C:\Users\xyz\.cargo\git\checkouts\orbtk-90d798f349c2ab56\b3b4a0d\crates\api\src\render_object/mod.rs:103 42: 0x9855a3 - >::run_with_context::h4167becef8e66cee at C:\Users\xyz\.cargo\git\checkouts\orbtk-90d798f349c2ab56\b3b4a0d\crates\api\src\systems/render_system.rs:62 43: 0x93a44a - dces::world::World::run_with_context::h43c0298dd70b869f at C:\Users\xyz\.cargo\git\checkouts\dces-rust-0e90bfa1cf1cf6e4\df014f1\src/world.rs:144 44: 0x96bc43 - ::run::hdbae44ff593edccb at C:\Users\xyz\.cargo\git\checkouts\orbtk-90d798f349c2ab56\b3b4a0d\crates\api\src\application/window_adapter.rs:180 45: 0x9f1ce3 - orbtk_shell::platform::window::Window::update::h57ce978b6bf83053 at C:\Users\xyz\.cargo\git\checkouts\orbtk-90d798f349c2ab56\b3b4a0d\crates\shell\src\orbclient/window.rs:336 46: 0x987c2c - orbtk_shell::platform::Shell::run::ha38887c8120f1ff9 at C:\Users\xyz\.cargo\git\checkouts\orbtk-90d798f349c2ab56\b3b4a0d\crates\shell\src\orbclient/mod.rs:81 47: 0x9e76b8 - orbtk_api::application::Application::run::h184b95337e81f035 at C:\Users\xyz\.cargo\git\checkouts\orbtk-90d798f349c2ab56\b3b4a0d\crates\api\src\application/mod.rs:94 48: 0x456005 - plotters_in_orbtk::main::h5812d8786bdef0f4 at src/main.rs:100 49: 0x4146bb - std::rt::lang_start::{{closure}}::h59a31f16d2cdd3e1 at C:\Users\xyz\.rustup\toolchains\stable-x86_64-pc-windows-gnu\lib/rustlib/src/rust\src\libstd/rt.rs:67 50: 0xfd07dc - std::rt::lang_start_internal::{{closure}}::hcfe58f53feea7233 at src\libstd/rt.rs:52 51: 0xfd07dc - std::panicking::try::do_call::hc4163588b8559d85 at src\libstd/panicking.rs:348 52: 0xfd07dc - std::panicking::try::h310a3be58418d841 at src\libstd/panicking.rs:325 53: 0xfd07dc - std::panic::catch_unwind::h52728a6ebc96df5e at src\libstd/panic.rs:394 54: 0xfd07dc - std::rt::lang_start_internal::ha1701ac7d300255b at src\libstd/rt.rs:51 55: 0x414693 - std::rt::lang_start::h16f333e419b7336b at C:\Users\xyz\.rustup\toolchains\stable-x86_64-pc-windows-gnu\lib/rustlib/src/rust\src\libstd/rt.rs:67 56: 0x458b5c - main 57: 0x4013c1 - __tmainCRTStartup at D:/mingwbuild/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/crtexe.c:335 58: 0x4014f6 - mainCRTStartup at D:/mingwbuild/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/crtexe.c:219 59: 0x7ffc82f07bd4 - SDL_Blit_BGRA8888_ARGB8888_Modulate_Blend.cold 60: 0x7ffc8400ce51 - SDL_Blit_BGRA8888_ARGB8888_Modulate_Blend.cold error: process didn't exit successfully: `target\debug\plotters_in_orbtk.exe` (exit code: 101) ```

arctic-alpaca commented 3 years ago

Disregard my last post, I think I found the problem. The application only panics when using rgba and it seems like using rgb and set_alpha on the RenderContext2D works. I guess the alpha is used twice when using rgba colors and that's what causes the overflow. The bars not getting drawn at all was my fault, I screwed up the transform for the text and I think this might have caused it.

Edit: I updated my code, so far everything seems to be working as expected.

FloVanGH commented 3 years ago

Great, I'm happy you found the source. It's a really great work!