Replies: 9 comments 16 replies
-
Check out the |
Beta Was this translation helpful? Give feedback.
-
Yes. Cairo is a dead end.
OK, but please keep in mind that this has to be 100% compatible with
Take note, though, that C++17 has always been the baseline requirement, as mentioned in the setup guide and the near-future target is C++20. |
Beta Was this translation helpful? Give feedback.
-
I would probably suggest that a better and likely easier approach is to have a C++14 mode in |
Beta Was this translation helpful? Give feedback.
-
Except for text layout which is a VERY tough nut to crack! And is one of the violations in "classic-cairo" based Elements with direct cairo calls instead of going through the API. Alas, text editing (at the very least input boxes) is a crucial part of a GUI. |
Beta Was this translation helpful? Give feedback.
-
Alright, I did a review of the artist text layout code. The required "host" integration can be simplified down to a single canvas call (drawing glyphs at positions). All the rest can be made generic in c++. |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
@eakoli As announced in discord:
Tell me if you are still interested, so I can plan ahead. I might do it (complete the backport |
Beta Was this translation helpful? Give feedback.
-
Yes. The cairo_2023 is up to date with the main line, but using cairo instead of artist. And that is also correct: if a cairo backend (in Artist) was provided similarly to how the macOS quarts (and Skia) is provided, then cairo_2023 would no longer be needed. I still have some fondness for Cairo, to be honest. But there's a lot to do in various aspects, and I'll need help from equally interested parties in different areas, including that one. |
Beta Was this translation helpful? Give feedback.
-
Yes. Sorry.
I'm not sure what you mean. All abstractions should be hidden in Artist. If not, it needs to be fixed. Can you point me to what you are saying?
Perhaps we can go through the code. It's faster that way. Video call perhaps? |
Beta Was this translation helpful? Give feedback.
-
It looks like elements::canvas is almost entirely attracted out (except for the cairo_t& constructor). And there are partial abstractions for font and glyph (they have a few aliased cairo types / cairo code inlined in header).
Was the intention to fully abstract out the rendering layer?
Doing so would allow macOS/iOS use using just CoreGraphics w/o needing to bring in cairo on those platforms.
Beta Was this translation helpful? Give feedback.
All reactions