Diligent Engine lightweight cross-platform abstraction layer for Vulkan, OpenGL and OpenGL ES