I need to add the correct OpenGL requirement specs to the Sys Requirements page on my company’s webshop. How do I know which version to specify? Does it depend on the depth of my OpenGL code (what shaders/functions used, etc…) And is this necessary for macOS (all Apple machines support JUCE’s OpenGL, correct?)?
How do I know which version to specify?
You don’t unless you have a market analysis. Pick a relatively modern one (like OpenGL 3) and go from there is the best suggestion I can give.
Does it depend on the depth of my OpenGL code (what shaders/functions used, etc…)
And is this necessary for macOS?
It’s not necessary, but it does help with rendering performance all around!
(all Apple machines support JUCE’s OpenGL, correct?)
Modern ones support 3 (at least), older ones may be limited to ES 2.0.
Have a look at the official OS X OpenGL support table for more information: https://developer.apple.com/opengl/capabilities/GLInfo_1075_Core.html
@jrlanglois Thanks so much for the quick reply!
Wow that’s a beautiful graph there. Bit of a beast! I’m planning on adding an option to use software rendering so I guess I can skirt around parsing heavily through these kind of compatibility charts.
OpenGL as a whole is tricky. it’s “portable” just as cpp or c code is portable when using std or additional dependencies that are being implemented by the 3rd party you’d expect it to run).
== It’s never 100% portable.
Sometimes graphic drivers don’t behave as you’d expect, multi-display might make context hell and that’s before hoping JUCE own code is error-prune.
One important thing is using a Render Engine which is capable of switching instead of coding your own OpenGL exclusive code. so you can easily make your app / plug-in switch to software rendering. this is very useful to resolve customers issues quickly.
@ttg Yeah it sounds like having the software rendering option wherever possible is useful, even just from a customer support standpoint.
Btw the SoundRadix fork (for extended OpenGL support) has been working really well! Kudos!