Graphics abstraction for multi target?

Has anyone written a graphics abstraction in order to allow drawing in different targets? Basically take the calls and make them work in js, openfl, kha, heaps… I know openfl does but if I wanted to switch to heaps, without jumping through openfl, I have to change all of my draw calls. I started something years ago but never got far.

You might be interested in this: GitHub - nanjizal/trilateral3

toolkits, originally the concept was developed in haxe flash, then evolved to support all toolkits ( Luxe, Nme, Openfl, Kha, Heaps, Canvas, Flash, WebGL ). In early versions the most extensive examples used Kha, but in trilateral3 the focus has been on WebGL direct, with color only tests with Gluon/Glut, NME, Lime and less optimally other toolkits.