我在IOS中使用带有Shader的Opengl ES实现了显示图像的代码。
以下步骤:
1.Created Context。
2.Created着色并编译。
3.Linked shader
4.将图像加载为纹理。
将Opengl ES与着色器的纹理链接。
GLuint _fishTexture = [self setupTexture:@"test-1bit-alpha.png"];
GLuint _texCoordSlot = glGetAttribLocation(program, "TexCoordIn");
glEnableVertexAttribArray(_texCoordSlot);
GLuint _textureUniform = glGetUniformLocation(program, "Texture");
glActiveTexture(GL_TEXTURE0); // unneccc in practice
glBindTexture(GL_TEXTURE_2D, _fishTexture);
glUniform1i(_textureUniform, 0); // unnecc in practice
const char *aPositionCString = [@"a_position" cStringUsingEncoding:NSUTF8StringEncoding];
GLuint aPosition = glGetAttribLocation(program, aPositionCString);
glVertexAttribPointer(_texCoordSlot, 2, GL_FLOAT, GL_FALSE, sizeof(Vertex), (GLvoid*) (sizeof(float) * 7));
我的顶点着色器:
attribute vec4 a_position;
attribute vec2 TexCoordIn; // New
varying vec2 TexCoordOut; // New
void main(void) {
// DestinationColor = SourceColor;
gl_Position = a_position;
TexCoordOut = TexCoordIn; // New
}
我的片段着色器:
varying lowp vec2 TexCoordOut; // New
uniform sampler2D Texture; // New
void main(void) {
gl_FragColor = texture2D(Texture, TexCoordOut); // New
}
我已成功构建,但我没有获得显示图像。
如何使用带着色器的opengl来显示图像。?
您是否使用带着色器的Opengl ES为显示图像提供了任何示例代码。?