We're using an OpenGLContext attached to our main Component to enable rendering with OpenGL, which happens to be faster than the normal rendering backend.
However, in Windows machines with "Intel Graphics G41 Express" GPUs, features used by JUCE's OpenGL rendering are not available and the rendering becomes a black screen.
It would be useful to be able to tell if the GPU/driver supports what JUCE rendering requires and only attaching an OpenGLContext to the component if it does. Is there a way to do it? Any advice?
We've had reports from some older cards not handling our opengl correctly including ATI's (AMD...).
I've saw the post by Intel and checked drivers. for this specific card for example there are no updates since 2012...
After we attach our component we can do some checks if extensions/shader init.
But once I've tried to detach it simply won't render the entire component by software...
As a side note, I have a computer on Windows XP with Toshiba+Intel drivers for the video card, and until I found a trick to get the last drivers from Intel (2012 too) and install them, I wasn't able to use OpenGL 2+ with JUCE
I would suggest creating an offscreen OpenGL context yourself and do some OpenGL support tests. After running these tests you can decide wether or not to attach your JUCE OpenGL renderer. Would be nice if JUCE could offer a mechanism for this though.
We ended up for project using JUCE purely (so OpenGL is just a switch) to add settings or flags to be used. so customer support would simply allow us to enable/disable OpenGL.
Still hope JUCE will provide a proper mechanism to handle this without users sending us “help!!! plug-in crashes when I open it!”
The primary issue is that these old chipsets “support” OpenGL but provide a black screen when attempting to render.
For many customers, updating their drivers will fix the issue (mainly the Intel bug, but I’ve seen it pop up on a few AMD chipsets). However, many other users have old computers for which maintained drivers are no longer available.