예제 #1
0
    // 自定义的绘制方法
    public void drawSelf(int texId) {
      // 使用某套指定的Shader程序
      GLES20.glUseProgram(mProgram);
      // 将最终变换矩阵传入到Shader程序中
      GLES20.glUniformMatrix4fv(muMVPMatrixHandle, 1, false, MatrixState.getFinalMatrix(), 0);
      // 传入坐标数据
      GLES20.glVertexAttribPointer(
          maPositionHandle, 3, GLES20.GL_FLOAT, false, 3 * 4, mVertexBuffer);
      // 传入纹理坐标数据
      GLES20.glVertexAttribPointer(
          maTexCoorHandle, 2, GLES20.GL_FLOAT, false, 2 * 4, mTexCoorBuffer);
      // 允许顶点位置数据数组
      GLES20.glEnableVertexAttribArray(maPositionHandle);
      GLES20.glEnableVertexAttribArray(maTexCoorHandle);

      // 绑定纹理
      GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
      GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, texId);

      // 绘制纹理矩形
      GLES20.glDrawArrays(GLES20.GL_TRIANGLES, 0, vCount);
    }