Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support OpenGL ES APIs #33

Closed
cgcostume opened this issue Aug 11, 2014 · 11 comments
Closed

Support OpenGL ES APIs #33

cgcostume opened this issue Aug 11, 2014 · 11 comments
Labels

Comments

@cgcostume
Copy link
Member

No description provided.

@cgcostume cgcostume added this to the v-1.1 milestone Aug 11, 2014
@SirVer
Copy link

SirVer commented Dec 8, 2014

+1. This is a must have for Widelands and will be a real asset when doing mobile development. Even cooler would be combination support. JOGL for example http://jogamp.org/jogl/www/ has interfaces like GL3ES3 which is the set intersection between the functionality of OpenGL 3 and ES 3. This makes it really convenient to develop Desktop/Mobile apps.

@scheibel scheibel modified the milestones: v-2.0, v-1.1 Dec 10, 2014
@scheibel
Copy link
Member

This issue would be really nice to have, but we have to postpone it for now.

@scheibel scheibel reopened this Jul 2, 2015
@drlight-code
Copy link

Is there any time estimate on this? We plan to move a production application to glbinding, and rely on iOS support where I presume we can only use OpenGL ES. If this is not to happen soon, do you have any suggestions on how to go about a portable application which can run on GL and GLES but still use glbinding? Or would you suggest falling back to another extension library for this usecase?

@cgcostume
Copy link
Member Author

@flv0 Here is a brief schedule w.r.t. to new/additional bindings: (1) we currently rewrite our API parsing using {{ mustache }} which should be ready in a few days/weeks and make arbitrary Khronos API parsing easier, more reliable, and most important, reusable for other APIs than OpenGL. (2) After a relase of glbinding 2.0 in the next days, we probably start on a new binding for Vulkan API (vkbinding) and then continue to OpenGL ES (glesbinding), but we could swap this... In both cases we probably provide individual projects and we are currently discussing if the Khronos Parsing should become a project for itself as well.

Since we currently provide and maintain C++ bindings only, any use for mobile devices (which we are going to do as well for iOS and Android...) is by encapsulating and writing the OpenGL, OpenGL ES, or Vulkan code in C++ and using it on a 'meta/control' level via any mobile SDK, e.g., NDK or Objective C wrappers. For our mobile projects we intend to write as much logic as possible in C/C++ and rely on any specific mobile SDK as little as possible.

On the OpenGL ES status: We had two independent, successful experiments (one by @scheibel and one by myself) on porting glbinding to gles, both successful (@scheibel already had egl as well as first gles examples running). As a result of these "feasibility tests" we decided to first rewrite our parsing (see (1) above) and provide the gles binding based on top of that. However, we have not yet finally decided on either include gles in glbinding or make it a separate project. For our bigger projects, we tend to rely an additional abstraction layers (i.e., globjects) and currently plan (subject to change) on extending globjects to support OpenGL ES as well. This would allow a single rendering code to either run on any/latest OpenGL and fallback to OpenGL ES (semi-automatically) whenever possible and required.

Concluding, you can expect a major release (2.0) of glbinding very soon and some OpenGL ES binding in the near future (probably Q2/Q3, without guarantee). It is yet unclear though, if we are going to include optional iOS and NDK wrappers.

@drlight-code
Copy link

This is very good news, thanks a lot for the extensive explanation. Looking forward to the releases and possibly writing my first vulkan application with glbinding 😄 By the way, is there any mailing list for announcements and discussion of the glbinding development?

@cgcostume cgcostume modified the milestones: v2.1, v-2.0 Mar 11, 2016
@cgcostume cgcostume removed this from the v2.1 milestone Jun 13, 2016
@krisr
Copy link

krisr commented Aug 4, 2016

+1 I'd love to have this for iOS and android development.

@malamanteau
Copy link

+1 hoping for OpenGL ES 3.0 support. I use ANGLE for almost all of my projects and ANGLE does not support desktop OpenGL for the frontend, it supports ES 2.0/3.0 exclusively. I set up globjects (which uses glbinding), and discovered that this simply will not work.

@scheibel
Copy link
Member

We just pushed code similar to glbinding for the OpenGL ES API at https://github.com/cginternals/glesbinding.
Please note that this covers currently only the binding and the auxiliary modules. Examples, tools, actual documentation and deployment is missing but is target for our development. We discuss libraries for cross-platform use of OpenGL / OpenGL ES, too.
Stay tuned.

@samwcoulter
Copy link

Any update on this? Does glbinding include support for OpenGL ES? Or do I need to use the glesbinding project you linked above?

@scheibel
Copy link
Member

glbinding is partly compabitible with OpenGL ES. This is also true the other way around (glesbinding and OpenGL).
To demonstrate this, I extended the demos within both projects.
Now there are:

  • Cubescape demo using glbinding, an OpenGL context and GLSL shader
  • Cubescape demo using glbinding, an OpenGL ES context and GLSL ES shader
  • Cubescape demo using glesbinding, an OpenGL ES context and GLSL ES shader
  • Cubescape demo using glesbinding, an OpenGL context and GLSL shader

Please note that there are subtle differences in OpenGL and OpenGL ES, e.g., the bit width of a boolean or some inaccessible extensions, constants and functions, that may render glbinding incompatible to OpenGL ES contexts and vice versa.
We suggest to use the actually corresponding APIs within your projects.

@scheibel
Copy link
Member

Closing this issue as it will not be further addressed here in the glbinding repository.
Progress, requests, and further inquiries can be handled at the glesbinding repository.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

7 participants