エラーが発生します
fatal error C9999: *** exception during compilation ***
たとえば、テクスチャ書き込みにImageapiを使用するGLSLシェーダーを再コンパイルしようとするたびに
layout(binding = 0) coherent uniform image3D Voxels;
ただし、最初のコンパイルは正常に機能します。他の誰かがこれに遭遇しましたか、そして回避策はありますか?
さて、私は回避策を考え出しました。基本的に、再コンパイルプロセスをもう少し破壊的にする必要がありました。
まず、(現在)すべてのシェーダー(vert、frag、geomなど)をシェーダープログラムからデタッチする必要があります。
次に、個々のシェーダーを再コンパイルするときに、新しいシェーダーIDを削除して再作成する必要があります(現在)。
glDeleteShader(shader_id);
shader_id = glCreateShader(GL_FRAGMENT_SHADER);
次に、シェーダーソースをリロードできます。その後、安全に再接続するか、新しいシェーダーをシェーダープログラムに接続して、すべてを再リンクします。うまくいけば、すべてが機能します。