OpenGLAppComponent and Android (Correction needed)


#1

I noticed that there was no Android version by default in the OpenGLAppExample juicer project, and that Jules says that some methods are not available under Android for the OpenGLAppComponent class. Questions are:

1- Does this mean that we should not use that class to develop an all-platform (Mac+Win+iOS+Android) app ?

2 - Should we stick in that case to the OpenGL demo methodology used in Juce Demo ?

3 - It seems that OpenGlAppComponent is using a separate thread different the main Message thread, but that this is not the case in the Juce Demo (OpenGL demo). Is that corrrect ? What is the right way to implement that ?

There are so many obsolete threads on that topic (as of Jan 2016) in the forum that I find it confusing...

Thanks for any hint on this.


#2

Many of the examples don't have exporters for Android/iOS/etc. It's pretty random which exporters each one has, in fact! It certainly doesn't mean it won't work on other platforms.

That example should run it on any platform - if you look at that OpenGLAppComponent class, there's actually very little inside it, it's just a convenient utility to help quickly get an app going.

In terms of threading, have a read of the OpenGLRenderer docs, it should explain how things are called.


#3

Yeah sorry I was sick last week and shouldn't have bothered anyone with these silly questions (I actually confused OpenGLAppComponent with OpenGLRenderer class !). Next time I'll stay in bed...

Sorry again :-s

<EDIT> There actually is a problem in Android. You do need to modify the fragment shader as suggested above to get it working with OPENGL ES.


#4

As a matter of fact this example does not run on Android due to OPENGL ES specific syntax.

You need to add the following lines in the GLSL fragment shader code main function:

#if JUCE_OPENGL_ES
 " precision lowp float;\n"
#endif