Creating vector shapes using only C++
What you are looking for is a way to get access to individual pixels in an image, in a way that you can modify those pixels with CPU code.

Once you have that you'll want to find software rendering / software rasterization methods.

A great place to start would be reading up in the various bresenham algorithms.

There is a lot of info out there on that. Here is one article for instance:
http://blog.demofox.org/2015/01/17/bresenhams-drawing-algorithms/