Para aportar algo que pueda servir, te digo que C++ es simplemente un lenguaje de programacion.
Si queres dotar de graficos a tus aplicaciones, te tocan usar partes propietarias, por ejemplo si tu plataforma destino es windows y los graficos no tienen que ser acelerados, podes usar el API de windows que no es mas que una interfaz que te ofrece el windows a travez de c++ para dotar de ventanas a tus aplicaciones en la parte grafica, todo lo que puede hacer windows, el te lo da como programador atravez de un API escrita en C, un conjunto de funciones que vos llamas, das argumentos, consultas etc.
Si deben ser acelerados entonces usas el API que mas te convegna entre OpenGl y Direct3D-
Ya en otras plataformas como linux las interfaces graficas son distintas, asi que los api son distintos ,etc. o sea el lenguaje de programacion en estos 3 casos es el mismo, pero el API diferente.
API = Aplication Programming Interface, o Interfaz de programacion de aplicaciones, es lo que el programador del objeto a ti como otro programador te quiere dejar ver
En el caso de windows, el API es lo quie microsoft nos quiere dejar ver para poder programar para windows.
y asi
Espero te sirva de algo.