c ++ – How do I know if I summarize a graphical API too closely?

When you create a rendering engine that supports multiple graphical APIs, you will most likely want to abstract your code into some kind of low-level library linked to graphical APIs such as OpenGL, Vulkan, D3D11, and so on.

They work very differently from each other, so it is essential to create a good generic API.
I've read that you would probably want to use a back-end that implements the basics for each graphical API that you want to support and a front-end that is used by the programmer to draw elements on the screen .

How do I know if I'm doing too much of a tight abstraction for every API I want to support?