openrndr
openrndr copied to clipboard
Implement an OpenGLES driver
To be able to run OPENRNDR on mobile devices and low power computers an GLES driver is required.
Steps
- [x] rewrite every shader
- [x] more
- [x] steps
A WEBGL version seems to be quite close now. It's being developed at https://github.com/openrndr/openrndr/tree/openrndr-0.4
The WebGL version is indeed a great paving on the road towards GLES.
What I have learned so far from targeting WebGL1
- The OPENRNDR core uses a fairly small subset of OpenGL and maps well to WebGL1 (with the addition of the array instancing extension)
- Differences in shader language are there but can be overcome. I haven't addressed the problem of shader code in ORX yet but I don't think that is entirely complicated.
- Not that much can be generalized between the WebGL and OpenGL3 implementations mostly because LWJGL's binding code / interface definition code can't exist in the Kotlin/JS space.
- OPENRNDR needed some restructuring to deal with internal dependencies a bit better, this should make adding additional platforms easier too.
- The
Driver
based approach that I picked at the very beginning of the OPENRNDR project is a definite winner
I am maintaining a feature branch that provides GLES support: https://github.com/openrndr/openrndr/tree/feature-gles-angle
Said branch is merged into master