Comments (5)
Exception handling is tricky between languages. Dear ImGui is written in C++ and cimgui doesn't expose any exception handling utilities and hence we cannot handle this on Julia side. There are at least two feasible ways to solve this problem. One way is to rewrite cimgui following some patterns like hourglass-interfaces. Another way is to directly wrap Dear ImGui based on Cxx which natively supports C++ exceptions. Unfortunately, neither of these is practically feasible because there's too much work that needs to be done.
I guess a great many crashes are caused by missing the EndXXX
calls? If so, you could write some macros to automatically insert corresponding EndXXX
calls. Other crashes may potentially due to certain bugs, feel free to open specific issues for better tracking.
from cimgui.jl.
Yea that's what I thought, no problem I understand. One thing I don't really get is why I get crashes if I make some dumb mistake on the Julia side of things in between Begin()
and End()
calls. I guess It's because due to the error exception in Julia the End()
call never actually happens. That's a little unfortunate.
from cimgui.jl.
Could you share a minimal working example?
Exceptions on the Julia side should work as long as you setup try-catch block correctly. Here is a simple renderer that I'm currently using for developing and testing imgui tools.
from cimgui.jl.
I've added try-catch-finally-block in those demos(312c0c3).
from cimgui.jl.
I haven't experienced any unexpected crashes since the try-catch-finally-block
approach was added last year. Feel free to reopen if any other unexpected crash happens.
from cimgui.jl.
Related Issues (20)
- Broken after update HOT 8
- Incomplete overlap HOT 4
- Difficulties with current Renderer.jl HOT 2
- No GUI shown with compiled julia app using CImGui HOT 14
- CImGui fails precompilation at `idGET_FLT_MAX()` HOT 1
- Columns - Horizontal Scroll demo not working in v1.79.0 HOT 3
- TagBot trigger issue HOT 6
- the CImGui.Text(text) function segfaults on aarm (v1.82) HOT 15
- Example code doesn't actually run HOT 6
- Input widgets with different IDs conflict with each other? HOT 5
- How can I get ImGuiWindowClass?
- The getproperty and setproperty! method of ImNodesStyle was not provided
- On some Windows machine, got glfwCreateWindow error HOT 2
- Regenerate new wrapper libraries for fresh ImGui and ImPlot versions? HOT 1
- An error occurs when I use ImGuiTextFilter in a package
- SDL Backend Support? HOT 6
- I can not run the demo HOT 5
- ImGuiKey_KeyPadEnter not defined, when running demo HOT 2
- Upgrading Guide: 1.79 to 1.82
- Expand tests HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cimgui.jl.