   What is the difference between Flushing a sprite and just calling End() on it?
  I have never really understood what flushing a sprite does?  How is it any different than Sprite.End()?   
  What library are you using?   ;  DirectX   ;  In general with DirectX you will need to be much more specific with regards to which library you're using.  There's many native versions of DirectX currently in use (DX9 through DX11), and there's also several managed wrappers available (SlimDX, MDX, XNA).  Anyway it sounds to me like you're using the old Managed DX stuff (if this is the case you really shouldn't be...MDX is deader than dead).  The way the Sprite class works is that when you tell it to draw a sprite, it puts the texture and drawing information into a list and saves it for later.  Then when the sprite is flushed, all sprites waiting to be drawn are drawn in one or more batches.  That is the purpose of the Flush() call: to make the Sprite class actually submit the queued up sprites for rendering.  Afterwards you can keep drawing more sprites if you wish. When you call End() it signals that you're done drawing sprites and that you can't draw any more until you call Begin() again.  Since you're signaling that you're done, calling End() will implicitly call Flush().   ;  Nope, not using MDX, I'm using SlimDX.  I just figured that I would get more views if I didn't mention the library being SlimDX (I thought that this sprite stuff is pretty common among Rendering APIs).So, what exactly is the advantage of Flushing sprites before calling end?  Are there any situations where it can be useful?   