The API expects triangles, but it is implemented to always use buffers under the hood. Basically, mesh data of 10 triangles with 4 attributes per vertex is converted to 4 buffers, each of length 30.