Mainly for fun I want to have a large number of square sprites, flying around the screen every which way. That would mean that there would be a graphics card draw call for each one of the sprites right? And this would effectively bottleneck me to a few thousand objects.
I have done stuff with the tilemap and vertex arrays in the past, so I was thinking I could just have these objects have a reference to a tilemap, and these objects can access their sf::Quads from the vertex array when it needs them, to update position and rotation and texture coordinates for animation. Then I would just draw the vertex array with no rotation or position changes. This way, all of these objects that use the same texture, just cause one draw call. I know then I couldn't draw one object before another in this case, but that doesn't matter. Is this a good way to draw a ton of separate squares?
Also, I have the angle of one of these objects, so when I compute the new positions of each vertex, is there any better way to find the 4 positions other than sin() and cos() or a lookup table? I have taken some Linear Algebra, but the only ways I know of don't avoid sin and cos.