When using glBegin/glEnd, is it equivalent to one draw call?
I mean, when using glDrawArrays, as I understand, that's the point when data is transferred to GPU (client side to server side). When using glBegin/glEnd, is data transferred to GPU only at the glEnd call? Or vertex are transferred one by one every glVertex/glNormal/glTexCoord call?
glDrawArrays
overglBegin/glEnd
does not just come from using GPU data right away (i.e. when using VBOs), but also from the fact that you don't make a driver call for each and every stupid little vertex. And that is a strength that plays out even for client side vertex arrays. So while in practice anything is possible and depends on your application and implementation the general rule is, thatglBegin/glEnd
is likely slower thanglDrawArrays
(no matter if using VBOs or not). – Christian Rau