A new layer has been added – this one as a dynamic plugin. The advantage of dynamic plugins is that they are loaded at runtime – so they do not have to be compiled/linked with the app. The only real challenge is that they do not share the same global name space as the app and its static plugins/libraries. This was solved by passing the apps globals (a ref to a context (current pen, brush, font, etc) object) to the plugin via the plugin interface.
Tried to move a chunk of Merva code into Euphemia to jump start it but that turned out to be a bad idea. More than I could ‘chew on’. By implementing it based off of the raster layer I was able to get something working much faster. I will incrementally add features with Merva as a reference instead.
This will probably take a week to implement, enough, for another preview release. After which; I will improve both the raster and vector layers more before introducing more big features.
I often flesh out logic using pseudo code in the comments. This helps in the moment but also helps when coding the logic properly may happen over multiple coding sessions. There can be many solutions to the problem and I want to stay with the one I started on.