# Read this first: Non working features

**URL:** <https://forum.juce.com/t/read-this-first-non-working-features/7069>\
**Category:** Android\
**Created:** [June 24, 2011, 2:31pm UTC](https://forum.juce.com/t/read-this-first-non-working-features/7069 "2011-06-24T14:31:27Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![X-Ryl669](https://avatars.discourse-cdn.com/v4/letter/x/a5b964/32.png) [@X-Ryl669](https://forum.juce.com/u/X-Ryl669)\
**Post date:** [June 24, 2011, 2:31pm UTC](https://forum.juce.com/t/read-this-first-non-working-features/7069/1 "2011-06-24T14:31:27Z")

</div>

This post is a meta post. Here’s the list of the features that are not currently working on Android. Feel free to append posts here when you’re finding new ones.  
If you post here, also, please be ready to edit your message to remove the item once it’s implemented.

So, let’s start:  
[list]  
[_] Modal dialog: Android doesn’t support “modal” windows, so a workaround is used to use “asynchronous” dialog instead.[/_]  
[_] Text editor using the native version (so you could use any soft input/keyboard)[/_]  
[_] OpenGL[/_][/list]

---

<div class="post-metadata">

**Author:** ![TheVinn](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/thevinn/32/806_2.png) [@TheVinn](https://forum.juce.com/u/TheVinn)\
**Post date:** [June 24, 2011, 3:10pm UTC](https://forum.juce.com/t/read-this-first-non-working-features/7069/2 "2011-06-24T15:10:37Z")

</div>

I’d be interested in seeing a Juce bug tracking system with tickets that I could open and monitor. I’m sure Jules would love that :lol: :lol: :lol:

---

<div class="post-metadata">

**Author:** ![jules](https://avatars.discourse-cdn.com/v4/letter/j/41988e/32.png) [@jules](https://forum.juce.com/u/jules)\
**Post date:** [June 24, 2011, 3:20pm UTC](https://forum.juce.com/t/read-this-first-non-working-features/7069/3 "2011-06-24T15:20:05Z")

</div>

Bugs? No, they’re just little tests I create sometimes, to make sure you’re all paying attention.

---

<div class="post-metadata">

**Author:** ![Hergest](https://avatars.discourse-cdn.com/v4/letter/h/db5fbb/32.png) [@Hergest](https://forum.juce.com/u/Hergest)\
**Post date:** [September 16, 2011, 11:14am UTC](https://forum.juce.com/t/read-this-first-non-working-features/7069/4 "2011-09-16T11:14:15Z")

</div>

Still no OpenGL?

---

<div class="post-metadata">

**Author:** ![jules](https://avatars.discourse-cdn.com/v4/letter/j/41988e/32.png) [@jules](https://forum.juce.com/u/jules)\
**Post date:** [September 16, 2011, 12:44pm UTC](https://forum.juce.com/t/read-this-first-non-working-features/7069/5 "2011-09-16T12:44:33Z")

</div>

openGL’s top of my list - in particular, what I’d like to do is actually to try rendering everything using openGL and bypass some of the clunky java UI structures. I’m trying to figure out a plan for that at the moment.

---

<div class="post-metadata">

**Author:** ![OBO](https://avatars.discourse-cdn.com/v4/letter/o/ba8739/32.png) [@OBO](https://forum.juce.com/u/OBO)\
**Post date:** [September 16, 2011, 1:45pm UTC](https://forum.juce.com/t/read-this-first-non-working-features/7069/6 "2011-09-16T13:45:34Z")

</div>

> [@jules](#):
>
> openGL’s top of my list - in particular, what I’d like to do is actually to try rendering everything using openGL and bypass some of the clunky java UI structures. I’m trying to figure out a plan for that at the moment.

Does that entail a cross platform low level opengl renderer?

---

<div class="post-metadata">

**Author:** ![jules](https://avatars.discourse-cdn.com/v4/letter/j/41988e/32.png) [@jules](https://forum.juce.com/u/jules)\
**Post date:** [September 16, 2011, 2:18pm UTC](https://forum.juce.com/t/read-this-first-non-working-features/7069/7 "2011-09-16T14:18:18Z")

</div>

> [@](#):
>
> Does that entail a cross platform low level opengl renderer?

That’s my intention.

---

<div class="post-metadata">

**Author:** ![Hergest](https://avatars.discourse-cdn.com/v4/letter/h/db5fbb/32.png) [@Hergest](https://forum.juce.com/u/Hergest)\
**Post date:** [September 16, 2011, 2:44pm UTC](https://forum.juce.com/t/read-this-first-non-working-features/7069/8 "2011-09-16T14:44:46Z")

</div>

It’ll be fantastic!!! When I came to JUCE, I was searching for a multiplatform GUI system based on OpenGL. If JUCE turns on that, it would be just wonderful.

---

<div class="post-metadata">

**Author:** ![sonic59](https://avatars.discourse-cdn.com/v4/letter/s/a8b319/32.png) [@sonic59](https://forum.juce.com/u/sonic59)\
**Post date:** [September 16, 2011, 8:38pm UTC](https://forum.juce.com/t/read-this-first-non-working-features/7069/9 "2011-09-16T20:38:32Z")

</div>

Any insight to your approach?

Render using software renderer (in CPU) to a giant texture and display it on a giant quad?  
Render using hardware renderer (in GPU) by triangulating and tessellating JUCE paths?

Are you going to create some sort of limited scene graph optimized for quads?  
Or maybe a full on 3D scene graph?

Targeting the fixed function pipeline? (GLES 1.1/GL 1+)  
Or completely shader based? (GLES 2.0/ GL 2+)

---

<div class="post-metadata">

**Author:** ![jules](https://avatars.discourse-cdn.com/v4/letter/j/41988e/32.png) [@jules](https://forum.juce.com/u/jules)\
**Post date:** [September 16, 2011, 8:43pm UTC](https://forum.juce.com/t/read-this-first-non-working-features/7069/10 "2011-09-16T20:43:50Z")

</div>

[quote=“sonic59”]Any insight to your approach?

Render using software renderer (in CPU) to a giant texture and display it on a giant quad?  
Render using hardware renderer (in GPU) by triangulating and tessellating JUCE paths?

Are you going to create some sort of limited scene graph optimized for quads?  
Or maybe a full on 3D scene graph?

Targeting the fixed function pipeline? (GLES 1.1/GL 1+)  
Or completely shader based? (GLES 2.0/ GL 2+)[/quote]

To get it working initially I’ll just use software rendering to draw anti-aliased stuff, and hopefully replace them later with accelerated versions when I figure out how best to do it. But just having acceleration for solid rectangles and image rendering should be a good start.

---

<div class="post-metadata">

**Author:** ![OBO](https://avatars.discourse-cdn.com/v4/letter/o/ba8739/32.png) [@OBO](https://forum.juce.com/u/OBO)\
**Post date:** [September 16, 2011, 9:18pm UTC](https://forum.juce.com/t/read-this-first-non-working-features/7069/11 "2011-09-16T21:18:56Z")

</div>

Awesome

---

<div class="post-metadata">

**Author:** ![X-Ryl669](https://avatars.discourse-cdn.com/v4/letter/x/a5b964/32.png) [@X-Ryl669](https://forum.juce.com/u/X-Ryl669)\
**Post date:** [September 21, 2011, 9:12am UTC](https://forum.juce.com/t/read-this-first-non-working-features/7069/12 "2011-09-21T09:12:03Z")

</div>

Jules,

You might be interested by this project:  
[http://kifri.fri.uniza.sk/~chochlik/oglplus/html/index.html](http://kifri.fri.uniza.sk/~chochlik/oglplus/html/index.html)

At first, it seems like it’s overkill, but after reading it, it’s really the way an OpenGL wrapper in C++ should be made.  
Its support for intergrated error reporting is awesome, the code is easy to follow (unlike OpenGL procedural mess), and it’s quite well Juce’s coding convention already.

---

<div class="post-metadata">

**Author:** ![jules](https://avatars.discourse-cdn.com/v4/letter/j/41988e/32.png) [@jules](https://forum.juce.com/u/jules)\
**Post date:** [September 22, 2011, 8:05am UTC](https://forum.juce.com/t/read-this-first-non-working-features/7069/13 "2011-09-22T08:05:33Z")

</div>

Cool - thanks for the link, I’ll check that out!

---

<div class="post-metadata">

**Author:** ![Bruce\_Wheaton](https://avatars.discourse-cdn.com/v4/letter/b/71c47a/32.png) [@Bruce\_Wheaton](https://forum.juce.com/u/Bruce_Wheaton)\
**Post date:** [September 22, 2011, 6:55pm UTC](https://forum.juce.com/t/read-this-first-non-working-features/7069/14 "2011-09-22T18:55:45Z")

</div>

Low-level OpenGL renderer? Be still my beating heart. Add 3D position to the animator - trivial is probably OK: it’s mainly for transitionary stuff, and once more, Juce will have the best looking GUIs on the block!

If there’s depth, and I can persuade the renderer to draw things twice, then my potential home-brew autostereoscopic monitor project will reach awesome + 1!

---

<div class="post-metadata">

**Author:** ![Hergest](https://avatars.discourse-cdn.com/v4/letter/h/db5fbb/32.png) [@Hergest](https://forum.juce.com/u/Hergest)\
**Post date:** [October 30, 2011, 2:21pm UTC](https://forum.juce.com/t/read-this-first-non-working-features/7069/15 "2011-10-30T14:21:17Z")

</div>

How far is OpenGL support?

---

<div class="post-metadata">

**Author:** ![jules](https://avatars.discourse-cdn.com/v4/letter/j/41988e/32.png) [@jules](https://forum.juce.com/u/jules)\
**Post date:** [November 1, 2011, 10:43am UTC](https://forum.juce.com/t/read-this-first-non-working-features/7069/16 "2011-11-01T10:43:42Z")

</div>

> [@Hergest](#):
>
> How far is OpenGL support?

Not too far…

---

<div class="post-metadata">

**Author:** ![TheVinn](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/thevinn/32/806_2.png) [@TheVinn](https://forum.juce.com/u/TheVinn)\
**Post date:** [November 2, 2011, 8:45am UTC](https://forum.juce.com/t/read-this-first-non-working-features/7069/17 "2011-11-02T08:45:24Z")

</div>

|\<---- THIS FAR -----\>|

---

<div class="post-metadata">

**Author:** ![Hergest](https://avatars.discourse-cdn.com/v4/letter/h/db5fbb/32.png) [@Hergest](https://forum.juce.com/u/Hergest)\
**Post date:** [November 8, 2011, 4:44pm UTC](https://forum.juce.com/t/read-this-first-non-working-features/7069/18 "2011-11-08T16:44:12Z")

</div>

> [@TheVinn](#):
>
> |\<---- THIS FAR -----\>|

Not too long…

---

<div class="post-metadata">

**Author:** ![jsolo](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/jsolo/32/30_2.png) [@jsolo](https://forum.juce.com/u/jsolo)\
**Post date:** [November 18, 2011, 6:33am UTC](https://forum.juce.com/t/read-this-first-non-working-features/7069/19 "2011-11-18T06:33:46Z")

</div>

Turning off OpenGL for Android for now?

`debug:
     [exec] Android NDK: WARNING: Invalid LOCAL_CPP_EXTENSION values: cpp    
     [exec] Compile++ thumb : juce_jni <= MainWindow.cpp
     [exec] Compile++ thumb : juce_jni <= Main.cpp
     [exec] Invalid attribute name: 
     [exec] package
     [exec] Compile++ thumb : juce_jni <= juce_core.cpp
     [exec] Compile++ thumb : juce_jni <= juce_cryptography.cpp
     [exec] Compile++ thumb : juce_jni <= juce_data_structures.cpp
     [exec] Compile++ thumb : juce_jni <= juce_events.cpp
     [exec] Compile++ thumb : juce_jni <= juce_graphics.cpp
     [exec] Compile++ thumb : juce_jni <= juce_gui_basics.cpp
     [exec] Compile++ thumb : juce_jni <= juce_gui_extra.cpp
     [exec] Compile++ thumb : juce_jni <= juce_opengl.cpp
     [exec] In file included from jni/../../../../juce/modules/juce_opengl/juce_opengl.cpp:117:
     [exec] /Users/jacob/SDKs/android-ndk-r7/platforms/android-5/arch-arm/usr/include/GLES/glext.h:268:1: warning: "GL_BGRA_EXT" redefined
     [exec] In file included from jni/../../../../juce/modules/juce_opengl/juce_opengl.cpp:40:
     [exec] jni/../../../../juce/modules/juce_opengl/juce_opengl.h:70:1: warning: this is the location of the previous definition
     [exec] In file included from jni/../../../../juce/modules/juce_opengl/juce_opengl.cpp:134:
     [exec] jni/../../../../juce/modules/juce_opengl/opengl/juce_OpenGLFrameBuffer.cpp: In constructor 'juce::OpenGLFrameBuffer::Pimpl::Pimpl(int, int, bool, bool)':
     [exec] jni/../../../../juce/modules/juce_opengl/opengl/juce_OpenGLFrameBuffer.cpp:147: error: 'glGenFramebuffersOES' was not declared in this scope
     [exec] jni/../../../../juce/modules/juce_opengl/opengl/juce_OpenGLFrameBuffer.cpp:148: error: 'glBindFramebufferOES' was not declared in this scope
     [exec] jni/../../../../juce/modules/juce_opengl/opengl/juce_OpenGLFrameBuffer.cpp:160: error: 'glFramebufferTexture2DOES' was not declared in this scope
     [exec] jni/../../../../juce/modules/juce_opengl/opengl/juce_OpenGLFrameBuffer.cpp:164: error: 'glGenRenderbuffersOES' was not declared in this scope
     [exec] jni/../../../../juce/modules/juce_opengl/opengl/juce_OpenGLFrameBuffer.cpp:165: error: 'glBindRenderbufferOES' was not declared in this scope
     [exec] jni/../../../../juce/modules/juce_opengl/opengl/juce_OpenGLFrameBuffer.cpp:166: error: 'glIsRenderbufferOES' was not declared in this scope
     [exec] jni/../../../../juce/modules/juce_opengl/opengl/juce_OpenGLFrameBuffer.cpp:175: error: 'glRenderbufferStorageOES' was not declared in this scope
     [exec] jni/../../../../juce/modules/juce_opengl/opengl/juce_OpenGLFrameBuffer.cpp:178: error: 'glGetRenderbufferParameterivOES' was not declared in this scope
     [exec] jni/../../../../juce/modules/juce_opengl/opengl/juce_OpenGLFrameBuffer.cpp:179: error: 'glFramebufferRenderbufferOES' was not declared in this scope
     [exec] jni/../../../../juce/modules/juce_opengl/opengl/juce_OpenGLFrameBuffer.cpp: In destructor 'juce::OpenGLFrameBuffer::Pimpl::~Pimpl()':
     [exec] jni/../../../../juce/modules/juce_opengl/opengl/juce_OpenGLFrameBuffer.cpp:197: error: 'glDeleteRenderbuffersOES' was not declared in this scope
     [exec] jni/../../../../juce/modules/juce_opengl/opengl/juce_OpenGLFrameBuffer.cpp:200: error: 'glDeleteFramebuffersOES' was not declared in this scope
     [exec] jni/../../../../juce/modules/juce_opengl/opengl/juce_OpenGLFrameBuffer.cpp: In member function 'void juce::OpenGLFrameBuffer::Pimpl::bind()':
     [exec] jni/../../../../juce/modules/juce_opengl/opengl/juce_OpenGLFrameBuffer.cpp:203: error: 'glBindFramebufferOES' was not declared in this scope
     [exec] jni/../../../../juce/modules/juce_opengl/opengl/juce_OpenGLFrameBuffer.cpp: In member function 'void juce::OpenGLFrameBuffer::Pimpl::unbind()':
     [exec] jni/../../../../juce/modules/juce_opengl/opengl/juce_OpenGLFrameBuffer.cpp:204: error: 'glBindFramebufferOES' was not declared in this scope
     [exec] jni/../../../../juce/modules/juce_opengl/opengl/juce_OpenGLFrameBuffer.cpp: In static member function 'static bool juce::OpenGLFrameBuffer::Pimpl::checkStatus()':
     [exec] jni/../../../../juce/modules/juce_opengl/opengl/juce_OpenGLFrameBuffer.cpp:213: error: 'glCheckFramebufferStatusOES' was not declared in this scope
     [exec] jni/../../../../juce/modules/juce_opengl/opengl/juce_OpenGLFrameBuffer.cpp: In static member function 'static void juce::OpenGLFrameBuffer::setCurrentFrameBufferTarget(GLuint)':
     [exec] jni/../../../../juce/modules/juce_opengl/opengl/juce_OpenGLFrameBuffer.cpp:351: error: 'glBindFramebufferOES' was not declared in this scope
     [exec] jni/../../../../juce/modules/juce_opengl/opengl/juce_OpenGLFrameBuffer.cpp: In member function 'bool juce::OpenGLFrameBuffer::readPixels(juce::PixelARGB*, const juce::Rectangle<int>&)':
     [exec] jni/../../../../juce/modules/juce_opengl/opengl/juce_OpenGLFrameBuffer.cpp:391: error: 'glBindFramebufferOES' was not declared in this scope
     [exec] jni/../../../../juce/modules/juce_opengl/opengl/juce_OpenGLFrameBuffer.cpp: In member function 'bool juce::OpenGLFrameBuffer::writePixels(const juce::PixelARGB*, const juce::Rectangle<int>&)':
     [exec] jni/../../../../juce/modules/juce_opengl/opengl/juce_OpenGLFrameBuffer.cpp:414: error: 'glDrawTexiOES' was not declared in this scope
     [exec] jni/../../../../juce/modules/juce_opengl/opengl/juce_OpenGLFrameBuffer.cpp:435: error: 'glBindFramebufferOES' was not declared in this scope
     [exec] make: *** [obj/local/armeabi/objs/juce_jni/ __/__ / __/__ /juce/modules/juce_opengl/juce_opengl.o] Error 1
     [exec] make: *** Waiting for unfinished jobs....`

---

<div class="post-metadata">

**Author:** ![jsolo](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/jsolo/32/30_2.png) [@jsolo](https://forum.juce.com/u/jsolo)\
**Post date:** [November 18, 2011, 6:45am UTC](https://forum.juce.com/t/read-this-first-non-working-features/7069/20 "2011-11-18T06:45:35Z")

</div>

Not so fast. Turned off OpenGL and got this… Atomic no good?

[Next page](https://forum.juce.com/t/read-this-first-non-working-features/7069.md?page=2)
