В Reallocate() для geometry buffer запрещается создавать index buffer, если его не было изначально, но при этом разрешается удалять его. По-моему, логичнее либо запретить оба случая, либо разрешить. Еще в Reallocate() разрешается поменять формат. Размер index buffer вычисляется немного по-разному в CreateGeometryBuffer() и Reallocate: в Reallocate() дополнительно проверяется на NULL указатель на данные с индексами.
Да, нужно запретить менять семантику данных в Reallocate.
В Reallocate() для geometry buffer запрещается создавать index buffer, если его не было изначально, но при этом разрешается удалять его. По-моему, логичнее либо запретить оба случая, либо разрешить. Еще в Reallocate() разрешается поменять формат. Размер index buffer вычисляется немного по-разному в CreateGeometryBuffer() и Reallocate: в Reallocate() дополнительно проверяется на NULL указатель на данные с индексами.
Да, нужно запретить менять семантику данных в Reallocate.