Java Code Examples for android.opengl.GLES20#glCompileShader()

The following examples show how to use android.opengl.GLES20#glCompileShader() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: GSYVideoGLViewBaseRender.java    From GSYVideoPlayer with Apache License 2.0 6 votes vote down vote up
protected int loadShader(int shaderType, String source) {
    int shader = GLES20.glCreateShader(shaderType);
    if (shader != 0) {
        GLES20.glShaderSource(shader, source);
        GLES20.glCompileShader(shader);
        int[] compiled = new int[1];
        GLES20.glGetShaderiv(shader, GLES20.GL_COMPILE_STATUS,
                compiled, 0);
        if (compiled[0] == 0) {
            Debuger.printfError("Could not compile shader " + shaderType + ":");
            Debuger.printfError(GLES20.glGetShaderInfoLog(shader));
            GLES20.glDeleteShader(shader);
            shader = 0;
        }
    }
    return shader;
}
 
Example 2
Source File: GLRenderer.java    From HoloKilo with GNU General Public License v3.0 6 votes vote down vote up
static public int loadShader(int type, String shaderCode)
{
    int shader = GLES20.glCreateShader(type);

    GLES20.glShaderSource(shader, shaderCode);
    GLES20.glCompileShader(shader);
    IntBuffer compile = IntBuffer.allocate(1);
    GLES20.glGetShaderiv(shader, GLES20.GL_COMPILE_STATUS, compile);
    if (compile.get(0) == GLES20.GL_FALSE) {
        Log.e(Config.TAG, "Error:");
        Log.e(Config.TAG, shaderCode);
        Log.e(Config.TAG, "Fault:");
        printLog(shader);
        return 0;
    }

    return shader;
}
 
Example 3
Source File: SurfaceTextureRenderer.java    From android_9.0.0_r45 with Apache License 2.0 6 votes vote down vote up
private int loadShader(int shaderType, String source) {
    int shader = GLES20.glCreateShader(shaderType);
    checkGlError("glCreateShader type=" + shaderType);
    GLES20.glShaderSource(shader, source);
    GLES20.glCompileShader(shader);
    int[] compiled = new int[1];
    GLES20.glGetShaderiv(shader, GLES20.GL_COMPILE_STATUS, compiled, 0);
    if (compiled[0] == 0) {
        Log.e(TAG, "Could not compile shader " + shaderType + ":");
        Log.e(TAG, " " + GLES20.glGetShaderInfoLog(shader));
        GLES20.glDeleteShader(shader);
        // TODO: handle this more gracefully
        throw new IllegalStateException("Could not compile shader " + shaderType);
    }
    return shader;
}
 
Example 4
Source File: ShaderUtil.java    From ar-drawing-java with Apache License 2.0 6 votes vote down vote up
/**
 * Converts a raw text file, saved as a resource, into an OpenGL ES shader.
 *
 * @param type The type of shader we will be creating.
 * @param resId The resource ID of the raw text file about to be turned into a shader.
 * @return The shader object handler.
 */
public static int loadGLShader(String tag, Context context, int type, int resId) {
    String code = readRawTextFile(context, resId);
    int shader = GLES20.glCreateShader(type);
    GLES20.glShaderSource(shader, code);
    GLES20.glCompileShader(shader);

    // Get the compilation status.
    final int[] compileStatus = new int[1];
    GLES20.glGetShaderiv(shader, GLES20.GL_COMPILE_STATUS, compileStatus, 0);

    // If the compilation failed, delete the shader.
    if (compileStatus[0] == 0) {
        Log.e(tag, "Error compiling shader: " + GLES20.glGetShaderInfoLog(shader));
        GLES20.glDeleteShader(shader);
        shader = 0;
    }

    if (shader == 0) {
        throw new RuntimeException("Error creating shader.");
    }

    return shader;
}
 
Example 5
Source File: SurfaceTextureRender.java    From DeviceConnect-Android with MIT License 6 votes vote down vote up
private int loadShader(int shaderType, String source) {
    int shader = GLES20.glCreateShader(shaderType);
    checkGlError("glCreateShader type=" + shaderType);
    GLES20.glShaderSource(shader, source);
    GLES20.glCompileShader(shader);
    int[] compiled = new int[1];
    GLES20.glGetShaderiv(shader, GLES20.GL_COMPILE_STATUS, compiled, 0);
    if (compiled[0] == 0) {
        if (DEBUG) {
            Log.e(TAG, "Could not compile shader " + shaderType + ":");
            Log.e(TAG, " " + GLES20.glGetShaderInfoLog(shader));
        }
        GLES20.glDeleteShader(shader);
        shader = 0;
    }
    return shader;
}
 
Example 6
Source File: EglUtil.java    From CameraRecorder-android with MIT License 5 votes vote down vote up
public static int loadShader(final String strSource, final int iType) {
    int[] compiled = new int[1];
    int iShader = GLES20.glCreateShader(iType);
    GLES20.glShaderSource(iShader, strSource);
    GLES20.glCompileShader(iShader);
    GLES20.glGetShaderiv(iShader, GLES20.GL_COMPILE_STATUS, compiled, 0);
    if (compiled[0] == 0) {
        Log.d("Load Shader Failed", "Compilation\n" + GLES20.glGetShaderInfoLog(iShader));
        return 0;
    }
    return iShader;
}
 
Example 7
Source File: EglUtil.java    From GPUVideo-android with MIT License 5 votes vote down vote up
public static int loadShader(final String strSource, final int iType) {
    int[] compiled = new int[1];
    int iShader = GLES20.glCreateShader(iType);
    GLES20.glShaderSource(iShader, strSource);
    GLES20.glCompileShader(iShader);
    GLES20.glGetShaderiv(iShader, GLES20.GL_COMPILE_STATUS, compiled, 0);
    if (compiled[0] == 0) {
        Log.d("Load Shader Failed", "Compilation\n" + GLES20.glGetShaderInfoLog(iShader));
        return 0;
    }
    return iShader;
}
 
Example 8
Source File: ExtractMpegFramesTest.java    From Android-MediaCodec-Examples with Apache License 2.0 5 votes vote down vote up
private int loadShader(int shaderType, String source) {
    int shader = GLES20.glCreateShader(shaderType);
    checkGlError("glCreateShader type=" + shaderType);
    GLES20.glShaderSource(shader, source);
    GLES20.glCompileShader(shader);
    int[] compiled = new int[1];
    GLES20.glGetShaderiv(shader, GLES20.GL_COMPILE_STATUS, compiled, 0);
    if (compiled[0] == 0) {
        Log.e(TAG, "Could not compile shader " + shaderType + ":");
        Log.e(TAG, " " + GLES20.glGetShaderInfoLog(shader));
        GLES20.glDeleteShader(shader);
        shader = 0;
    }
    return shader;
}
 
Example 9
Source File: GLToolbox.java    From PhotoEditor with MIT License 5 votes vote down vote up
private static int loadShader(int shaderType, String source) {
    int shader = GLES20.glCreateShader(shaderType);
    if (shader != 0) {
        GLES20.glShaderSource(shader, source);
        GLES20.glCompileShader(shader);
        int[] compiled = new int[1];
        GLES20.glGetShaderiv(shader, GLES20.GL_COMPILE_STATUS, compiled, 0);
        if (compiled[0] == 0) {
            String info = GLES20.glGetShaderInfoLog(shader);
            GLES20.glDeleteShader(shader);
            throw new RuntimeException("Could not compile shader " + shaderType + ":" + info);
        }
    }
    return shader;
}
 
Example 10
Source File: TextureRenderer.java    From VideoCompressor with Apache License 2.0 5 votes vote down vote up
private int loadShader(int shaderType, String source) {
    int shader = GLES20.glCreateShader(shaderType);
    checkGlError("glCreateShader type=" + shaderType);
    GLES20.glShaderSource(shader, source);
    GLES20.glCompileShader(shader);
    int[] compiled = new int[1];
    GLES20.glGetShaderiv(shader, GLES20.GL_COMPILE_STATUS, compiled, 0);
    if (compiled[0] == 0) {
        GLES20.glDeleteShader(shader);
        shader = 0;
    }
    return shader;
}
 
Example 11
Source File: CameraToMpegTest.java    From Android-MediaCodec-Examples with Apache License 2.0 5 votes vote down vote up
private int loadShader(int shaderType, String source) {
    int shader = GLES20.glCreateShader(shaderType);
    checkGlError("glCreateShader type=" + shaderType);
    GLES20.glShaderSource(shader, source);
    GLES20.glCompileShader(shader);
    int[] compiled = new int[1];
    GLES20.glGetShaderiv(shader, GLES20.GL_COMPILE_STATUS, compiled, 0);
    if (compiled[0] == 0) {
        Log.e(TAG, "Could not compile shader " + shaderType + ":");
        Log.e(TAG, " " + GLES20.glGetShaderInfoLog(shader));
        GLES20.glDeleteShader(shader);
        shader = 0;
    }
    return shader;
}
 
Example 12
Source File: MyGLRenderer.java    From recordablesurfaceview with Apache License 2.0 5 votes vote down vote up
/**
 * Utility method for compiling a OpenGL shader.
 *
 * <p><strong>Note:</strong> When developing shaders, use the checkGlError()
 * method to debug shader coding errors.</p>
 *
 * @param type - Vertex or fragment shader type.
 * @param shaderCode - String containing the shader code.
 * @return - Returns an id for the shader.
 */
public static int loadShader(int type, String shaderCode){

    // create a vertex shader type (GLES20.GL_VERTEX_SHADER)
    // or a fragment shader type (GLES20.GL_FRAGMENT_SHADER)
    int shader = GLES20.glCreateShader(type);

    // add the source code to the shader and compile it
    GLES20.glShaderSource(shader, shaderCode);
    GLES20.glCompileShader(shader);

    return shader;
}
 
Example 13
Source File: GLDrawer2D.java    From AudioVideoPlayerSample with Apache License 2.0 5 votes vote down vote up
/**
 * load, compile and link shader
 * @param vss source of vertex shader
 * @param fss source of fragment shader
 * @return
 */
public static int loadShader(String vss, String fss) {
	if (DEBUG) Log.v(TAG, "loadShader:");
	int vs = GLES20.glCreateShader(GLES20.GL_VERTEX_SHADER);
	GLES20.glShaderSource(vs, vss);
	GLES20.glCompileShader(vs);
	final int[] compiled = new int[1];
	GLES20.glGetShaderiv(vs, GLES20.GL_COMPILE_STATUS, compiled, 0);
	if (compiled[0] == 0) {
		if (DEBUG) Log.e(TAG, "Failed to compile vertex shader:"
				+ GLES20.glGetShaderInfoLog(vs));
		GLES20.glDeleteShader(vs);
		vs = 0;
	}

	int fs = GLES20.glCreateShader(GLES20.GL_FRAGMENT_SHADER);
	GLES20.glShaderSource(fs, fss);
	GLES20.glCompileShader(fs);
	GLES20.glGetShaderiv(fs, GLES20.GL_COMPILE_STATUS, compiled, 0);
	if (compiled[0] == 0) {
		if (DEBUG) Log.w(TAG, "Failed to compile fragment shader:"
			+ GLES20.glGetShaderInfoLog(fs));
		GLES20.glDeleteShader(fs);
		fs = 0;
	}

	final int program = GLES20.glCreateProgram();
	GLES20.glAttachShader(program, vs);
	GLES20.glAttachShader(program, fs);
	GLES20.glLinkProgram(program);

	return program;
}
 
Example 14
Source File: RenderUtils.java    From ParaViewTangoRecorder with Apache License 2.0 5 votes vote down vote up
/**
 * Creates a vertex or fragment shader.
 * 
 * @param type
 *            one of GLES20.GL_VERTEX_SHADER or GLES20.GL_FRAGMENT_SHADER
 * @param shaderCode
 *            GLSL code for the shader as a String
 * @return a compiled shader.
 */
public static int loadShader(int type, String shaderCode) {
    // Create a shader of the correct type
    int shader = GLES20.glCreateShader(type);

    // Compile the shader from source code
    GLES20.glShaderSource(shader, shaderCode);
    GLES20.glCompileShader(shader);

    return shader;
}
 
Example 15
Source File: ShaderUtil.java    From augmentedreality with Apache License 2.0 5 votes vote down vote up
public static int LoadShader(int type, String shaderSrc) {
  int shader;
  int[] compiled = new int[1];
  String TAG = " LoadShader";
  // Create the shader object
  shader = GLES20.glCreateShader(type);

  if (shader == 0) {
    return 0;
  }

  // Load the shader source
  GLES20.glShaderSource(shader, shaderSrc);

  // Compile the shader
  GLES20.glCompileShader(shader);

  // Check the compile status
  GLES20.glGetShaderiv(shader, GLES20.GL_COMPILE_STATUS, compiled, 0);

  if (compiled[0] == 0) {
    Log.e(TAG, "Erorr!!!!");
    Log.e(TAG, GLES20.glGetShaderInfoLog(shader));
    GLES20.glDeleteShader(shader);
    return 0;
  }

  return shader;
}
 
Example 16
Source File: FilterShaders.java    From Telegram-FOSS with GNU General Public License v2.0 5 votes vote down vote up
public static int loadShader(int type, String shaderCode) {
    int shader = GLES20.glCreateShader(type);
    GLES20.glShaderSource(shader, shaderCode);
    GLES20.glCompileShader(shader);
    int[] compileStatus = new int[1];
    GLES20.glGetShaderiv(shader, GLES20.GL_COMPILE_STATUS, compileStatus, 0);
    if (compileStatus[0] == 0) {
        if (BuildVars.LOGS_ENABLED) {
            FileLog.e(GLES20.glGetShaderInfoLog(shader));
        }
        GLES20.glDeleteShader(shader);
        shader = 0;
    }
    return shader;
}
 
Example 17
Source File: GLES20Canvas.java    From Trebuchet with GNU General Public License v3.0 5 votes vote down vote up
private static int loadShader(int type, String shaderCode) {
    // create a vertex shader type (GLES20.GL_VERTEX_SHADER)
    // or a fragment shader type (GLES20.GL_FRAGMENT_SHADER)
    int shader = GLES20.glCreateShader(type);

    // add the source code to the shader and compile it
    GLES20.glShaderSource(shader, shaderCode);
    checkError();
    GLES20.glCompileShader(shader);
    checkError();

    return shader;
}
 
Example 18
Source File: CameraGLRendererBase.java    From OpenCV-android with Apache License 2.0 4 votes vote down vote up
private static int loadShader(String vss, String fss) {
    Log.d("CameraGLRendererBase", "loadShader");
    int vshader = GLES20.glCreateShader(GLES20.GL_VERTEX_SHADER);
    GLES20.glShaderSource(vshader, vss);
    GLES20.glCompileShader(vshader);
    int[] status = new int[1];
    GLES20.glGetShaderiv(vshader, GLES20.GL_COMPILE_STATUS, status, 0);
    if (status[0] == 0) {
        Log.e("CameraGLRendererBase", "Could not compile vertex shader: "+GLES20.glGetShaderInfoLog(vshader));
        GLES20.glDeleteShader(vshader);
        vshader = 0;
        return 0;
    }

    int fshader = GLES20.glCreateShader(GLES20.GL_FRAGMENT_SHADER);
    GLES20.glShaderSource(fshader, fss);
    GLES20.glCompileShader(fshader);
    GLES20.glGetShaderiv(fshader, GLES20.GL_COMPILE_STATUS, status, 0);
    if (status[0] == 0) {
        Log.e("CameraGLRendererBase", "Could not compile fragment shader:"+GLES20.glGetShaderInfoLog(fshader));
        GLES20.glDeleteShader(vshader);
        GLES20.glDeleteShader(fshader);
        fshader = 0;
        return 0;
    }

    int program = GLES20.glCreateProgram();
    GLES20.glAttachShader(program, vshader);
    GLES20.glAttachShader(program, fshader);
    GLES20.glLinkProgram(program);
    GLES20.glDeleteShader(vshader);
    GLES20.glDeleteShader(fshader);
    GLES20.glGetProgramiv(program, GLES20.GL_LINK_STATUS, status, 0);
    if (status[0] == 0) {
        Log.e("CameraGLRendererBase", "Could not link shader program: "+GLES20.glGetProgramInfoLog(program));
        program = 0;
        return 0;
    }
    GLES20.glValidateProgram(program);
    GLES20.glGetProgramiv(program, GLES20.GL_VALIDATE_STATUS, status, 0);
    if (status[0] == 0)
    {
        Log.e("CameraGLRendererBase", "Shader program validation error: "+GLES20.glGetProgramInfoLog(program));
        GLES20.glDeleteProgram(program);
        program = 0;
        return 0;
    }

    Log.d("CameraGLRendererBase", "Shader program is built OK");

    return program;
}
 
Example 19
Source File: MainActivity.java    From AndroidPlayground with MIT License 4 votes vote down vote up
static int loadShader(int type, String shaderCode) {
    int shader = GLES20.glCreateShader(type);
    GLES20.glShaderSource(shader, shaderCode);
    GLES20.glCompileShader(shader);
    return shader;
}
 
Example 20
Source File: SphericalViewRenderer.java    From DeviceConnect-Android with MIT License 4 votes vote down vote up
private int loadShader(final int type, final String shaderCode) {
    int shader = GLES20.glCreateShader(type);
    GLES20.glShaderSource(shader, shaderCode);
    GLES20.glCompileShader(shader);
    return shader;
}