Why the above method omits the size parameter? In most cases you have one big array for vertex cache, its size don't usually change, but number of actual vertices does. Right now you need to reallocate the array every time the call is made and that puts a lot of strain on the GC.