Open4
C-WebGL: GLES2の実装方針を考える会

とりあえずDirectX 8/9が動作する程度にはC-WebGL上でOpenGL ES2をエミュレーションしたい。逆にGLES3は殆ど需要無いんじゃないかという気がする。

必須の要素
- C-WebGLやWebGLではコンテキストを全てのAPIに与える必要があるが、OpenGL ES2 / EGLではスレッドローカルな"カレント"コンテキストが存在する。
- オブジェクトは
int
型の数値で指される。C-WebGLではポインタ。 - いわゆるClient side arrayの利用が許容されている。(WebGL1 6.2)
地味にEGLのエミュレーションも壁だな。。まぁ今回は適当でも良いけど。
WebGL1の仕様には差分が纏められている:
... これらの差分の殆どはDirectXや細かいOpenGLの実装差異に由来するので無視して良い。
ちょっと不味そうなのは DEPTH_STENCIL
render bufferの扱いくらいだろうか。。

拡張
うーむ。。。とりあえずナシで良いですかね。。

とりあえずGLES2のglueを追加
規格書はconstnessについてちゃんと指定していないようで、規格書のコピペだと上手くいかない箇所が割とあった。例えば、Khronosのヘッダでは:
GL_APICALL void GL_APIENTRY glShaderSource (GLuint shader, GLsizei count,
const GLchar *const*string, const GLint *length);
*const*
って何だよ。。規格書では
のように、細かいところまでは const
が付けられていない。
gl4esは全てのエントリポイントをEGL経由で取得するので、更にそれ用の奴を用意する必要があるな。。