3 ms·
It takes dozens of lines of code to draw a triangle in modern OpenGL. You were presumably using immediate mode, which is ancient and deprecated because it has h
by slavik81 5y ago
It takes dozens of lines of code to draw a triangle in modern OpenGL. You were presumably using immediate mode, which is ancient and deprecated because it has horrible performance on modern hardware. Given that the whole point of an API for hardware accelerated graphics is better performance, that's a big problem.
Immediate mode OpenGL not even a particularly friendly API, either. I found its implicit global mutable state for things like the matrix stack to be deeply confusing. There's much better drawing libraries out there if what you're looking for is ease-of-use.
- tl 5y agoThe removal of immediate mode from OpenGL is one of many examples of modern OpenGL's stupidity, partially responsible for creating the mess we're in: https://www.jwz.org/blog/2012/06/i-have-ported-xscreensaver-to-the-iphone/ https://www.jwz.org/blog/2012/06/i-have-ported-xscreensaver-...
- slavik81 5y agoImmediate mode still exists and is usable to this day. The compatibility profile never went away. JWZ implemented old-school OpenGL in a library on top of a more modern API, and I would entirely agree that's a good approach to compatibility. I'd have advocated for doing the same thing, just without calling everyone idiots.
- skohan 5y agoImmediate mode makes no sense from a performance standpoint. But you can still use it in 2021 if you want. I believe it's still supported mostly for CAD programs which haven't changed their core software since the 80's
- dangerbird2 5y agoAnd if you like the immediate mode API, just use something like raylib's rgl[1] that emulates an immediate-mode API on modern OpenGL. Aside from performance benefits, you can port your code to GLES or WebGL, where immediate-mode isn't present. [1] https://github.com/raysan5/raylib/blob/master/src/rlgl.h https://github.com/raysan5/raylib/blob/master/src/rlgl.h