Open wyhinton opened 2 years ago
Technically ffgl does not limit in what kind of opengl context it's being run. It is up to the host to create a context and have it active while processing the plugin. Resolume creates a 4.1 core context and thus you need to use #version 410 shaders. I have no experience with webgl so i dont know if the driver would be able to load es shaders, it might also depend on which extensions are present.
I see. So how do you add gl extensions?
The availability of extensions is determined by the GPU manufacturer. Wikipedia explains it better than I can:
In addition to the features required by the core API, graphics processing unit (GPU) vendors may provide additional functionality in the form of extensions. Extensions may introduce new functions and new constants, and may relax or remove restrictions on existing OpenGL functions. Vendors can use extensions to expose custom APIs without needing support from other vendors or the Khronos Group as a whole, which greatly increases the flexibility of OpenGL
To keep it practical, the code you posted will run fine in a 4.1 context using #version 410, provided you have your own vertex shader passing the values for v_positionWithOffset
GL_ARB_ES2_compatibility, GL_ARB_ES3_1_compatibility and GL_ARB_ES3_compatibility only find widespread support on windows. So yeah it looks like it depends on what your target is. Is there any reason why you wouldn't just port the shader to #version 410?
I'm building some shaders using WebGL 2. Does ffgl only support WebGL 1?
i.e will shader code like this work?