何時間もグーグルをしているにもかかわらず、これについて明確な答えを見つけることができないようです。誰かが何が起こっているのか教えてくれますか? 「バージョン140はサポートされていません」などのエラーが表示されます。これは私のデバイス(Kindle Fire)ですか、それともGL ES 2.0ですか?ライブラリなどを追加する必要がありますか?
実際にはライブラリを追加する必要はありません。140はKindleFireには新しすぎます。バージョン指定を削除するか、シェーダーがコンパイルされるまでデクリメントしてください。言語の個々のバージョンにはいくつかの違いがあるため、シェーダーの他のエラーを修正する必要がある場合があります。
glGetString()
を使用してGL_SHADING_LANGUAGE_VERSION
にクエリを実行し、デバイスでサポートされているGLSLのバージョンを取得することもできます(少なくとも100であることが保証されています-ES 2.0はシェーディング言語を備えた最初のものです)。
また、他の人が述べたように、OpenGL ESGLSLはOpenGLESと同じ言語ではないため(OpenGL ESはOpenGLではないことは明らかだと思いました)、バージョン番号が一致しません。ただし、 GL_ARB_ES2_compatibility とES3、ES3.1、およびES3.2への拡張があり、ES /非ESGLSL言語のマッピングが説明されており、それらを使用してESを取得することができます-非ESコンテキストの機能のように。
OpenGL ES 2.0仕様 は GLSL ES を参照しますが、これはGLSLと同じではありません。
仕様GLSL ES仕様は次のように述べています。
このバージョンの言語は、デスクトップGLSLのバージョン1.10に基づいています。ただし、バージョン1.20にはあるが、1.10にはない機能がいくつか含まれています。
サポートされているものを確認するには、仕様を確認してください。
OpenGL ESはOpenGLではないため、同様にOpenGLESのシェーダー言語はOpenGLのシェーダー言語ではありません。それらは類似ですが、同じではありません。したがって、GLSL ESのバージョンと一致するデスクトップGLSLバージョンはありません。