1

一部のデスクトップ アプリケーションにはhttps://github.com/akrinke/Font-Stash.gitを使用しました。今度は、gles2 を使用するラズベリー Pi で使用したいと考えています。コードを調べたところ、gles で機能しない唯一のパスが flush_draw 関数であることがわかりました。

glBindTexture(GL_TEXTURE_2D, texture->id);
glEnable(GL_TEXTURE_2D);
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glVertexPointer(2, GL_FLOAT, VERT_STRIDE, texture->verts);
glTexCoordPointer(2, GL_FLOAT, VERT_STRIDE, texture->verts+2);
glDrawArrays(GL_TRIANGLES, 0, texture->nverts);
glDisable(GL_TEXTURE_2D);
glDisableClientState(GL_VERTEX_ARRAY);
glDisableClientState(GL_TEXTURE_COORD_ARRAY);

私はこれにglesに移植しようとしています:

glBindTexture(GL_TEXTURE_2D, texture->id);
glEnable(GL_TEXTURE_2D);
GLint position_index = get_attrib(stash->program, "position");
glEnableVertexAttribArray(position_index);
glVertexAttribPointer (position_index, 2, GL_FLOAT, GL_FALSE, VERT_STRIDE, texture->verts);
GLint texture_coord_index = get_attrib(stash->program, "texCoord");
glEnableVertexAttribArray(texture_coord_index);
glVertexAttribPointer (texture_coord_index, 2, GL_FLOAT, GL_FALSE, VERT_STRIDE, texture->verts + 2);
GLint texture_index = get_uniform(stash->program, "texture");
glUniform1i(texture_index, 0);
glDrawArrays(GL_TRIANGLES, 0, texture->nverts);
glDisable(GL_TEXTURE_2D);

頂点 sl あり

attribute vec4 position;
attribute vec2 texCoord;
varying vec2 texCoordVar;
void main() {
  gl_Position = position;
  texCoordVar = texCoord;
}

およびフラグメント sl

precision mediump float;        // set default precision for floats to medium
uniform sampler2D texture;      // shader texture uniform
varying vec2 texCoordVar;       // fragment texture coordinate varying
void main() {
  // sample the texture at the interpolated texture coordinate
  // and write it to gl_FragColor
  gl_FragColor = texture2D( texture, texCoordVar);
}

しかし、画面には何も表示されません。

私のコードの何が問題なのか誰か教えてもらえますか?

4

2 に答える 2

0

glEnable(GL_TEXTURE_2D) は有効な GLES2 ではありません。また、頂点シェーダーで位置の操作を行っていないため、座標が錐台内に収まることが保証されていない限り、それらをラスタライザーに渡すだけである場合、または彼らは錐台に行き着くわけではありません。固定関数パイプが変換に関して処理するために使用したすべてのことを説明したと確信していますか?

于 2013-07-19T10:23:22.377 に答える