0

OpenGL グラフィックスを X11 ウィンドウに表示するプロジェクトに取り組んでいます。これは Ubuntu 12.04 で行う必要があり、Mesa のバージョンの OpenGL ES 2.0 と egl を使用しています。コンパイルされて正常に動作するシェーダーがいくつかありますが、1 つに到達すると、gdb はglCompile()、このフラグメント シェーダーでセグメンテーション違反が発生していることを示しています。

const char PixmapShaderFrag[] =
      "precision mediump float;                            \n"
      "varying vec2 vTexCoord;                             \n"
      "varying vec4 vColor;                                \n"
      "uniform sampler2D sTexture;                         \n"
      "void main()                                         \n"
      "{                                                   \n"
      "    gl_FragColor = texture2D(sTexture, vTexCoord);  \n"
      "}                                                   \n";

編集:

上記のものより前にコンパイルされ、問題を引き起こさないように見える別のフラグメント シェーダーを次に示します。

const char RectShaderFrag[] =
      "precision mediump float;      \n"
      "varying vec4 vColor;          \n"
      "void main()                   \n"
      "{                             \n"
      "    gl_FragColor = vColor;    \n"
      "}                             \n";

PixmapShaderFragシェーダーと他のシェーダーの唯一の大きな違いはtexture2D(). Mesa と の使用に問題があるかどうかtexture2D()、またはシェーダーに何か他の問題があるかどうかを知っている人はいますか? texture2D()より多くのシェーダーコードが必要な場合でも、私ができる別の方法はありますか?`

4

0 に答える 0