.NET 3.5 with simple PNG output

Aug 1, 2011 at 8:36 PM
Edited Aug 1, 2011 at 8:37 PM

First off, I love the work! I've got the basics compiled and the examples running!

Now down to business.  I've got a near term release on a project that I'd love to get this integrated with.  The project is mono based (think .NET 3.5) and lacks some of the Presentation classes.  Ideally I just need simple PNG output since the results of the symbol generation are going to be put on a 3D texture within a game engine.  I may also have the ability to use real .NET 3.5, but not 4.0 at this time.  Any thoughts on how difficult this would be to pull off?

Aug 3, 2011 at 1:23 AM

Your proposal sounds both interesting and difficult.

  1. The Military Symbology project started life as a .NET 3.5 project so I don't think there would be many issues with taking it back to 3.5. A quick search and replace in the .csproj files (4.0 -> 3.5) would probably get you most of the way there - for Visual Studio.
  2. The most important code is in XAML and the main output is a Canvas object. Support for XAML and Canvas outside of Microsoft is pretty limited. You would have to utilize something like the XAML engine in Moonlight. That engine has some problems but might be adequate for rendering the relatively simple shapes used in the Military Symbology project as bitmaps that can be converted to PNGs. I don't know what plans Xamarin has for Moonlight updates - their current effort seems to be on the handhelds so future Moonlight support might be iffy.
  3. Then there is the issue of the runtime environment - if you're going to use a game engine such as Unity 3D then you'll have to bring along the Moonlight XAML engine there as well and I'm not sure what dependencies it might have. For example, computing proper text extents for layout might be problematic.
  4. If Microsoft intends to put a renewed emphasis on XAML in Windows 8, having a similar capability in the non-Windows world would be quite beneficial - and would be appreciated.
  5. Another possible approach, depending on your needs, is to convert the XAML code into SVG - but there's a lot of symbols.

If it were me I would spend a day looking at the Moonlight XAML engine and seeing what it would take to integrate it as a PNG bitmap renderer into whatever engine you're using. That seems like a non-trivial effort.