GDI, X11, OpenGL ... are rendering APIs, i.e. you usually do not use them to manipulate images (you can do this, but this requires some precautions).
In a drawing application such as MS Paint, if it is pixel-based, you will usually manipulate some image buffer using regular code or a special image manipulation library, and then send the full buffer to the rendering API.
If your data model consists of strokes and individual figures, that is, vector graphics, then OpenGL does a good backend. However, it might be worth taking a look at some other vector graphics API such as OpenVG (which in its current implementations is on top of OpenGL, but a built-in implementation that works directly on the GPU may appear).
In your use case, you will not encounter any performance issues on current computers, so do not select your API from these criteria. OpenGL is definitely faster than GDI when it comes to texturing, alpha blending, etc. However, depending on the system and GPU, pure GDI may be superior to OpenGL for such simple things as drawing an arc or filling in a complex, self-intersecting polygon with complex winding rules.
datenwolf
source share