openrndr icon indicating copy to clipboard operation
openrndr copied to clipboard

Implement an OpenGLES driver

Open hamoid opened this issue 4 years ago • 3 comments

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

hamoid avatar May 06 '20 08:05 hamoid

A WEBGL version seems to be quite close now. It's being developed at https://github.com/openrndr/openrndr/tree/openrndr-0.4

hamoid avatar Apr 24 '21 07:04 hamoid

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

edwinRNDR avatar Apr 24 '21 10:04 edwinRNDR

I am maintaining a feature branch that provides GLES support: https://github.com/openrndr/openrndr/tree/feature-gles-angle

edwinRNDR avatar Feb 01 '24 08:02 edwinRNDR

Said branch is merged into master

edwinRNDR avatar Mar 18 '24 12:03 edwinRNDR