일부 데스크톱 응용 프로그램에는 https://github.com/akrinke/Font-Stash.git을 사용했습니다. 이제 gles2를 사용하는 나무 딸기 파이에 사용하고 싶습니다. 정점 SLOpenGL에서 GLES 2.0 포트
와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);
:
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하는 포트에 노력하고있어 : flush_draw 기능 내가 코드에 고개 GLES에서 작동하지 않는 유일한 경로를 볼 수 있습니다
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);
}
하지만 화면에 아무것도 표시되지 않습니다.
아무도 내 코드의 문제점을 보여줄 수 있습니까?
ES 2.0에서 작동하지 않는 유일한 기능입니까? 당신이 제공 한 repos에서 main.c를 볼 때'glMatrixMode (...)','glLoadIdentity()'그리고'glOrtho (...)'호출을 볼 수 있기 때문에, GLES 2.0. – Reigertje