Much better said that me. Thank you.If you're only moving a teaspoon of dirt? use a teaspoon [...] Or something like that. Something something teaspoon.
I'll add from myself that there is also GLES (an unruly, hard to tame beast) that does not have immediate mode functions but is required to support some platforms.
Me, I created a wrapper classfor small to medium loads. It hides actual implementation (may be glVertexAttribPointer() or may be older, more basic vertex arrays) and only use it to move my teaspoons.
Why? Because this way it lets you think of *all* your data as meshes. And contains much, much less API-related code to rehaul if you have to change your rendering mechanisms later.
I observed modern intel drivers flat out ignore this. But legacy drivers (say, Windows XP + Gf 5200 FX) *require* this called *after* SwapBuffers, otherwise you won'y get accurate measurementglFinish()
(my engine uses this value for controlling adaptive detail, alongside the fps meter)
So, rendering, *then* sh-- stuff like backround uploading of higher LODs and only then SwapBuffers...? That's... such a good idea. Why am I doing it backwards?so you spend the minimum amount of time possible on the blocking swap call.
Me, I usually get "yer ghetto intel video doesn't know that trick" and stop botheringYou can use GL timers to get the 'server' side timing,
Bookmarks