wow, megabump. just in case anyone is wondering, i made a system with a pure virtual base class, which is my api independant interface, and implemented each api. i used void * to represent api dependant data, and the rendering class casts it to whatever it made it as.