Hello! I have been working on a software renderer in my spare time, and I wanted to share my progress!
The main idea is that you can create Rasterizers, which have a framebuffer that can be drawn to using methods. You can use multiple Rasterizers for many purposes; layers, off-screen rendering, dynamic image generation, etc. You can then take the RGBA-ordered bytes and update them into a screen buffer or texture that represents the screen. (SDL2 and minifb examples showing this are in the repository)
The included drawables.rs has some examples of some higher-level data structures; Sprite and SpriteFont. These involve Matrix-Transformed image manipulation which uses the otherwise sparsely used Mat3 and Vec2 structs I made. I was planning to make a framework out of the library but I think I should focus on graphics at the moment.
Feel free to experiment and offer ideas on what to add! You can include the crate using 'aftershock = "0.0.9" ', but I recommend using the repository to see some examples first and mess around with those.
I'm hoping down the line I can provide an actual game that can be played as a proper example of what it can do, but what I have right now is mostly placeholders I created.
Screenshot of the SDL2 Engine Template:
Video of the SDL2 Engine Template: https://files.catbox.moe/36e3oa.mp4
Thank you very much for your time. Let me know what you think, and I hope you all have a wonderful day!