Exemple #1
0
  int load(int type) throws GLException {
    if (loaded) {
      return handle;
    }
    handle = GLES20.glCreateShader(type);
    if (handle == 0) {
      int error = GameRenderer.logError("glCreateShader(" + type + ")");
      throw new GLException(error, "CreateShader failed");
    }
    GLES20.glShaderSource(handle, source);
    GameRenderer.logError("glShaderSource(handle, source)");
    GLES20.glCompileShader(handle);

    // Check compile status
    int[] compiled = {0};
    GLES20.glGetShaderiv(handle, GLES20.GL_COMPILE_STATUS, compiled, 0);
    if (compiled[0] != GLES20.GL_TRUE) {
      Log.e(TAG, "Error compiling shader. \n" + GLES20.glGetShaderInfoLog(handle));

      // Undo the shader
      GLES20.glDeleteShader(handle);
      return 0;
    }

    Log.d(TAG, "shader successfully compiled!");

    return handle;
  }