>>109086886
It's possible, it's just really difficult.
class Entity{
public:
virtual void Render(/*Renderer here?*/) = 0;
}
class Quad: public entity{
Vertex buffer_data[6];
public:
void Render();
}
for(Entities* e)
{
e->Render();
}
Just check which shader you are currently using and just switch it (actually, I think deferred rendering allows you to draw opaque shaders out of order, but I have never used deferred rendering)