Original Post
I was wondering what the best strategy to implement 2 rendering pipelines as 2 separate modules, one for Direct3D and the other for OpenGL? I have come to 2 approaches. First, each module provides rendering fucntionality per entity/object. For example, DrawTextureBox, DrawStairs, DrawSkinnedMehs, EnablePerPixelBumpMapping, ...etc. Second, each module provides a set of basic functionality for drawing primitives, based on pushing or buffering vertices. Something like DrawTextutredTriangleStrip, DrawColoredQuadLists, CreateGeoemtryBuffer... EnableBlending, EnableDepthTest... What would be more appropriate?