Skip to content

junk-machine/XVGML

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

XVGML engine

eXtensible Vector Graphics Markup Language

This is a very old project I did about the time when XAML started to see the light. The idea turned out to be very similar - you define elements in XML and they are then being rendered into an image. Although this project was mostly focusing on rendering images (compared to XAML, focusing on interactive UI), I decided to ditch it anyway, as XAML could be used (and has) vector graphic resources as well. This is fully working project, although number of implemented graphical elements is very limited. Today even Google has primitive vector drawables in their Android framework.

Code composition works through packages, which can register one or more graphical elements (with XML namespace and name) in the container. Then LayoutBuilder can instantiate all elements based on the registrations and LayoutRenderer can render them on the ICanvas. Cool feature is that there could be multiple canvas implementations. Default one is using standard GDI, while one can implement hardware-accelerated DirectDraw canvas, if necessary.

This was a fun project to get hands-on experience creating 2D image format, rendering engine and understanding all potential complications.

Test project is a console app that has few sample XML image definitions and can render them in PNG format.

Happy coding!

About

eXtensible Vector Graphics Markup Language

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages