![](http://webcf.waybackmachine.org/web/20211214073529im_/https://habrastorage.org/getpro/habr/avatars/4e7/c2b/4e9/4e7c2b4e9a5ceec6055342019332e9c5.jpg)
Проблема несовместимых API или как легко поддерживать совместимость с OpenGL, DirectX и Vulkan
![](https://webcf.waybackmachine.org/web/20211214073529im_/https://habrastorage.org/getpro/habr/upload_files/e0b/93a/652/e0b93a652e9dca608f2872edd2e6c91c.png)
В программировании очень популярен прием создания программных интерфейсов - API. Этот прием очень полезен, чтобы скрыть все тонкости реализации и не нагружать ими обывателя. Но бывают случаи, когда хотелось бы поддерживать в коде несколько API, которые выполняют одну и ту же задачу, причем с минимальным переписыванием кода. Например: поддерживать работу игры (движка) на различных графических API: DirectX, OpenGL, Vulkan. В данной статье предложение решение данной проблемы.