Currently I'm working on vector rendering and tools.
I went through making a buggy triangulation renderer, then made a scanline rasterizer (which was way too slow), then the trapezoidal rasterizer which looked reazonable
Problem with the trapezoidal r. is that it generates way too many triangles. I'm experimenting with subdividing comlex polys into simple polys, and then rendering them with triangles. (This is way more complex algorithmically than trapezoids, but will in theory produce so much less triangles, that will justify the complexity)
Also, I did some work on offset curves.
Here's i think about 60-80 offset curves
see video (2MB mp4)
Right now I took a break from vectors, and decided to tackle object tree (like the layers in photoshop).
Also, I'm working on undo/redo stuff - which requires a robust serializer. Just yesterday I made a thing that does the serialization of shapes lik this:
u32 Size; u8 *Serialized = lsmeta_serialize(tree_node, Nodes, &Size);
I just pass the type, pointer to the root node and get back the data+size. It's pretty cool.
It uses internal buffers, so no pre-allocation of space is needed by the caller.
I still have to make the reverse process. Going to work on that in the next couple days.
I'll be posting more of these shorter updates here.
Follow me on twitter for more pictures twitter.com/stas_lisetsky.
And feel free to leave comments. Thanks!