So I have a component with a class declaration like this:
class WaveGraphOpenGL : public juce::Component, public juce::OpenGLRenderer
that I want to be able to hide and reveal using
setVisible(). At initialization, the component initializes and displays just fine, I can successfully hide it by calling
setVisible(false) on one of its parent components, but calling
setVisible(true) causes an error. Specifically,
newOpenGlContextCreated() calls a function
compileOpenGlShaderPrograms() taken from @timart tutorial about OpenGL.
auto shaderProgramAttempt = std::make_unique<juce::OpenGLShaderProgram>(openGLContext);
std::unique_ptr<juce::OpenGLShaderProgram> which is then used to reset the component’s shader program like this:
before the projection and view matrices are attached to the shader program. The issue is that
nullptr for some reason. Is this an issue with the openGLContext object or with the shader program itself (or else am I using
std::make_unique incorrectly)? Any insight from people who have dealt with this is much appreciated!