sammycage / lunasvg

SVG rendering and manipulation library in C++
MIT License
865 stars 124 forks source link

Plans for lunasvg v3.0.0 Release #170

Open sammycage opened 3 months ago

sammycage commented 3 months ago

We are thrilled to share our roadmap for lunasvg v3.0.0, focusing on significant enhancements and optimizations:

Your generous support can help sustain and grow this library. If you find value in it, please consider making a donation. Your contributions make a difference! Donate here: PayPal.

sudoLife commented 3 months ago

Great stuff! Do you have an approximate date for the release?

sammycage commented 3 months ago

@sudoLife There is no exact date for the release, but it is expected before October.

sammycage commented 3 months ago

@sudoLife Update: Text and image rendering capability has been added to plutovg.

sudoLife commented 3 months ago

@sudoLife Update: Text and image rendering capability has been added to plutovg.

Hey that's cool! Since you're planning to add plutovg as subproject in Luna, does that mean Luna is going to get the same functionality?

Jeremy-Boyle commented 1 month ago

Hello, any chance that you could push a update for vcpkg, master currently works for my svg rendering but the latest version does not.

Thank you !

sammycage commented 1 month ago

@Jeremy-Boyle Could you please let me know what specific issues you're encountering with the latest version? I'd like to understand the problem better.

Jeremy-Boyle commented 1 month ago

@Jeremy-Boyle Could you please let me know what specific issues you're encountering with the latest version? I'd like to understand the problem better.

Hi, sorry about not being clearer, the current 2.4.0 release when rendering a document to a bitmap, it displays as black. The current master branch however works perfectly fine. I'm not exactly sure what the specific issue is with 2.4.0.

I also used the svg_to_png example to verify that it was no issues with my implementation.

sammycage commented 1 month ago

@Jeremy-Boyle Hi, thanks for bringing this to my attention. To help me investigate further, could you please share the SVG file you're encountering problems with? That will allow me to better understand what's going on with the 2.4.0 release. I appreciate your help!

Jeremy-Boyle commented 1 month ago

Here's an example that doesn't work .

https://assets.tarkov.dev/maps/svg/Customs-Ground_Level.svg

sammycage commented 1 month ago

@Jeremy-Boyle Thanks for sharing the SVG file. After investigating the issue, I can confirm that there isn't a problem with the v2.4.0 release. The rendering issue you're seeing might be due to a different factor, as I haven't made any significant changes in the latest master branch that would affect this behavior. If you continue to encounter issues, feel free to reach out, and we'll look into it further together.

asmwarrior commented 1 month ago

Hi, for the release, here is my suggestion:

1, when I looked at the source code:

https://github.com/sammycage/lunasvg/blob/master/include/lunasvg.h

This header file has many doxygen style comments, but the comments are not documented, I mean it lacks a lot of descriptions. For example, it see many function arguments are list in the comments, but no descriptions.

As a developer, I need to understand those header files, because they are the interface of the whole library, I need to understand how to use this library. I see there is a file:

https://github.com/sammycage/lunasvg/blob/master/examples/svg2png.cpp

Is this the only "example" file? I think more example file is need, so the user can understand the whole usage of the library.

2, I see a sub folder named "subprojects", it looks like it points to another project: sammycage/plutosvg: Tiny SVG rendering library in C

From the project description, lunasvg is a C++ library for rendering svg file, and plutosvg is a C library for rendering svg file, I'm not sure what is their relationship. Do they depends? I mean the former depends on the later one? or verse vice?

Anyway, thanks for your work!

sammycage commented 1 month ago

@asmwarrior Thank you for your feedback and for taking the time to review the project!

  1. I appreciate your observation regarding the doxygen comments in lunasvg.h. Improving the documentation is important to me, and I’ll be working on adding more detailed descriptions to the function arguments and overall documentation before the release of this version. I also understand the need for more examples, and I plan to include additional example files to help users better understand the library.

  2. Regarding the subproject, thank you for pointing that out. Just to clarify, the project in the subprojects folder is actually plutovg, not plutosvg. PlutoVG is a 2D vector rendering library similar to Cairo or Skia, and I’m using it as the backend for lunasvg. There isn’t a direct dependency between lunasvg and plutosvg (which is a different library). Each serves distinct purposes within the ecosystem.

Thank you again for your valuable suggestions. I’ll make sure to incorporate them before the release.

asmwarrior commented 1 month ago
  1. Regarding the subproject, thank you for pointing that out. Just to clarify, the project in the subprojects folder is actually plutovg, not plutosvg. PlutoVG is a 2D vector rendering library similar to Cairo or Skia, and I’m using it as the backend for lunasvg. There isn’t a direct dependency between lunasvg and plutosvg (which is a different library). Each serves distinct purposes within the ecosystem.

Thanks, indeed lunasvg needs plutovg, sorry I have made a mistake, those two names(plutovg and plutosvg) are similar.