There is a whole lot more than TriangleLists, like TriangleStrips. I also hate functions being two functions at once having a bool passed to decide at runtime what they should do. This is bad style so I would support ArtiomsCiumac's aproach. If you want to reduce code, you better have the one method without PrimitiveType-Parameter just call the other with a predefined PrimitiveType. This makes it the same viewed from caller, but removes branching at runtime. Also you remain flexible to other PrimitiveTypes.