JUCE splash on OpenGL

Hi!
I started writing juce gui in opengl and have run into the problem of the juce splash screen not appearing over the opengl component.
legality aside, the component is still clickable and launches the juce website when the user tries to click on sliders which is very undesirable.
my question is whether its legal/ok to re-implement the juce splash in opengl to prevent user accidentally launching the juce website, whether its ok to make stylistic modifications to the juce splash to fit the style of the plugin better, and if not where will i be able to find a png of the current juce splash screen
thanks in advance!

EDIT: i realize now that as long as i dont change the juce/projucer source code im allowed to have the splash screen removed, so never mind

You’re allowed to remove it if you’re using GPLv3.
An example where this is not possible -
iOS/VST2/AAX.

i see, thanks. well what then shall i do about the splash screen not being visible then

EDIT: i realize now that as long as i dont change the juce/projucer source code im allowed to have the splash screen removed, so never mind

I don’t believe that is the correct interpretation. Before looking at what I write below, you will probably want to read Get JUCE - JUCE

Under normal circumstances, to show the splash screen from showing, you can set JUCE_DISPLAY_SPLASH_SCREEN=1. In Projucer (sounds like that is what you are using), I believe there is a text field to set preprocessor definitions. I can’t remember for sure (it’s been a while), but I am sure there is a field to turn off that setting.

Having said that, if your window is over the splash screen this may not be of any real use to you at all.

Good luck!

I was running into the same issue with the splash screen not showing up. To summarize the current behavior (juce 7.0.9):

  • you are advised to only have one opengl context
  • opengl seems to paint over all juce elements by default. You can mitigate this via m_openGLContext.setComponentPaintingEnabled(true);. With that the current component paint() will be called wen renderOpenLG() is called and you can have e.g. text drawn by juce and fancy graphics via opengl
  • If you have a child component that uses opengl this will also be drawn above the parent component

Thus my solution is currently:

  • Have exactly one juce::OpenGLContext at the top level component. This is e.g. the plugin Editor or the App. I will talk about this as the Editor.
  • Make the Editor also derive from juce::OpenGLRenderer and implement the required functions (in which you just delegate to the actual opengl component so e.g.
void AudioPluginAudioProcessorEditor::newOpenGLContextCreated()
{
    m_oglTopLevelComponent.newOpenGLContextCreated();
}

and same for renderOpenGL and openGLContextClosing.

  • In the Editor constructor call
m_openGLContext.setRenderer(this);
m_openGLContext.attachTo(*this);
m_openGLContext.setContinuousRepainting(true);
m_openGLContext.setComponentPaintingEnabled(true);

This seems to have enabled the juce splash screen for me. Inconvenient, but if it gets the job done …