SVG icon indicating copy to clipboard operation
SVG copied to clipboard

huge PR - skiasharp support

Open gentledepp opened this issue 7 years ago • 11 comments

Hi guys!

First of all thank you for this svg library - it is just great!

A while ago, I forked this library with the goal to get it to run on android. Meanwhile, we are using SkiaSharp for rendering. This allows us to render on Android, iOS, Mac, Windows (and UWP) so basically everything except Linux. Also, Skia supports hardware-rendering (OpenGL and Angle to translate the OpenGL calls to DirectX).

However, we did not just rip all the "System.Drawing" stuff out and replaced it, but refactored it into a factory with our own interfaces, so that you can (literally) stuff in any other render library you like.

My question is: Are you basically interested in merging this in? As we changed a lot (e.g. removed all TypeDescriptor stuff as this is not supported on UWP) so merging will be quite tedious. On the other hand, I see a lot of benefits for you guys too.

In that case, please reach out to me. Our repository is: https://github.com/gentledepp/SVG The latest branch with plattform support is https://github.com/gentledepp/SVG/tree/uwp_ios

Cheers!

gentledepp avatar Mar 09 '17 10:03 gentledepp

hello, this sounds totally interesting and actually we are also planning to use SkiaSharp internally in other projects and have looked into it quite recently. so that would fit quite well.

i'll discuss it with my colleagues and get back to you.

tebjan avatar Mar 09 '17 14:03 tebjan

Great - the build is actually already working and our tests run on ios, android, uwp and windows. Maybe we could arrange a skype chat sometime. (I am based in Austria, ... also sollten wir kein Zeitzonenproblem haben ;-))

gentledepp avatar Mar 09 '17 16:03 gentledepp

we had a short chat about the merge and came to the conclusion that it would be better for us to schedule the merge bit further. even as far as july/august since we are preparing for a big event. the merge could take a week or more of work. also a GDI implementation or at least forms adapter is needed. so it would be good to do it after our event. and having a skype chat to plan and discuss the merge would be great!

tebjan avatar Mar 13 '17 23:03 tebjan

sure - I am not in a hurry at all. My skype nickname is the same as my github name. Feel free to drop me a line ;-)

gentledepp avatar Mar 14 '17 07:03 gentledepp

hello @gentledepp how is the status of the fork on your end? do you still maintain it? maybe its more easy to release a final version of this master branch and then completely switch to yours. some PRs might get lost, but overall your branch looks like the way to go.

tebjan avatar Oct 17 '17 18:10 tebjan

Hi! Yes, it is still maintained. The library is quite stable and we use it in our app in production for some time now. Everything is working nicely. Please just look at the skiasharp branch!

There are some things on our list, but I don't know when we'll find the time for them:

  1. We still do not support all SVG features, just as you do. Additionally, I have not found time yet to split the failing unit tests into "failing because of an unknown error" and "failing, and we know this feature is not yet supported". I had the idea to add like a "blacklist" or "white list" of test names, but never found the time for it. Maybe you would like to look into it?

  2. At the time being, the port builds on top of a PCL core library - so no .NET standard yet. As we have other things to do, there are no plans for porting to .NET standard at the moment. Also, we are using the bait and switch trick with PCL so we can use features in that library that are actually not supported. I have no idea how that trick can be translated to .NET standard yet. However, it might be as simple after all.

  3. As you may have much more insights on this topic than we (because, after all, you originally ported it to Github, right), you may want to become a contributor?

gentledepp avatar Oct 17 '17 19:10 gentledepp

great, thanks for the update!

tebjan avatar Oct 25 '17 14:10 tebjan

What are your plans now? We are happy to help lifting this codebase to a new level 👍

gentledepp avatar Oct 25 '17 14:10 gentledepp

@tebjan - can you elaborate about your plans? If you plan to switch to / integrate with the skiasharp branch, this may have change the priorities of the other issues, or make them obsolete.

mrbean-bremen avatar Dec 18 '18 19:12 mrbean-bremen

ideally we would merge the current master with the skiasharp master and combine all fixes. however, this sounds like a huge job and i am not sure whether we have enough time for that. i could also imagine to get the latest PRs regarding netstandard into master, releasing a few more fixes for the nuget 2 and prepare a version 3 which is based on skia. however, if @mrbean-bremen and @gentledepp are up for the task of merging, i'll do my best in order to support it.

tebjan avatar Mar 01 '19 17:03 tebjan

This looks like a huge task, as the code bases seem to have deviated sufficiently. Before starting this, we have to know where we want to go - e.g. what about .NET compatibility (which is not available in the skiasharp branch, as far as I understand, but in the long run will go away anyway). Also, I read that PCL is deprecated in favor of netstandard, so we may want to go to netstandard directly. As has been discussed in another issue, netstandard compatibility for .NET Core seems not to be far away, so maybe this is something we can wait for while we sort out a merge strategy. Increasing the test coverage for different platform is also something that has to be considered IMHO.

Unfortunately, I myself have basically no experience in the related technologies - I'm only using .NET, and only under Windows so far (and only occassionally, most of the time using C++/Qt and Python), so while I'm willing to help, I'm hoping for you (@tebjan) and @gentledepp (and whoever is working on skiasharp now) to lead the work and make the decisions.

mrbean-bremen avatar Mar 01 '19 18:03 mrbean-bremen