1
我有這樣的代碼:OPEN GL ES 2.0 - glGetAttribLocation返回-1
@Override
public void onSurfaceCreated(GL10 gl, EGLConfig config) {
GLES20.glClearColor(0, 0, 0, 1.0f);
int vertexShader = loadShader(GLES20.GL_VERTEX_SHADER,
getVertexShader());
int fragmentShader = loadShader(GLES20.GL_FRAGMENT_SHADER,
getFragmentShader());
mProgram = GLES20.glCreateProgram();
GLES20.glAttachShader(mProgram, vertexShader);
GLES20.glAttachShader(mProgram, fragmentShader);
GLES20.glLinkProgram(mProgram);
Matrix.setIdentityM(mMMatrix, 0);
**maPositionHandle = GLES20.glGetAttribLocation(mProgram, "aPosition");**
}
和標線後,maPositionHandle是-1出於某種原因。
這裏是我的VERT着色器:
uniform mat4 uTMatrix;
uniform mat4 uMVPMatrix;
attribute vec4 aPosition;
attribute vec2 aTextureCoord;
varying vec2 vTextureCoord;
void main() {
gl_Position = uMVPMatrix * uTMatrix * gl_Position;
vTextureCoord = aTextureCoord;
}
你可以看到,有一個名爲。負責的屬性,但我得-1和我在屏幕上得到無拉絲輸出。 我該如何解決這個問題?謝謝。
謝謝!我不小心寫了gl_Position而不是aPosition。 – saarraz1 2012-03-25 15:32:22