@ -219,9 +219,9 @@ public abstract class CameraGLRendererBase implements GLSurfaceView.Renderer, Su
int vshader = GLES20 . glCreateShader ( GLES20 . GL_VERTEX_SHADER ) ;
int vshader = GLES20 . glCreateShader ( GLES20 . GL_VERTEX_SHADER ) ;
GLES20 . glShaderSource ( vshader , vss ) ;
GLES20 . glShaderSource ( vshader , vss ) ;
GLES20 . glCompileShader ( vshader ) ;
GLES20 . glCompileShader ( vshader ) ;
int [ ] compiled = new int [ 1 ] ;
int [ ] status = new int [ 1 ] ;
GLES20 . glGetShaderiv ( vshader , GLES20 . GL_COMPILE_STATUS , compiled , 0 ) ;
GLES20 . glGetShaderiv ( vshader , GLES20 . GL_COMPILE_STATUS , status , 0 ) ;
if ( compiled [ 0 ] = = 0 ) {
if ( status [ 0 ] = = 0 ) {
Log . e ( "CameraGLRendererBase" , "Could not compile vertex shader: " + GLES20 . glGetShaderInfoLog ( vshader ) ) ;
Log . e ( "CameraGLRendererBase" , "Could not compile vertex shader: " + GLES20 . glGetShaderInfoLog ( vshader ) ) ;
GLES20 . glDeleteShader ( vshader ) ;
GLES20 . glDeleteShader ( vshader ) ;
vshader = 0 ;
vshader = 0 ;
@ -231,8 +231,8 @@ public abstract class CameraGLRendererBase implements GLSurfaceView.Renderer, Su
int fshader = GLES20 . glCreateShader ( GLES20 . GL_FRAGMENT_SHADER ) ;
int fshader = GLES20 . glCreateShader ( GLES20 . GL_FRAGMENT_SHADER ) ;
GLES20 . glShaderSource ( fshader , fss ) ;
GLES20 . glShaderSource ( fshader , fss ) ;
GLES20 . glCompileShader ( fshader ) ;
GLES20 . glCompileShader ( fshader ) ;
GLES20 . glGetShaderiv ( fshader , GLES20 . GL_COMPILE_STATUS , compiled , 0 ) ;
GLES20 . glGetShaderiv ( fshader , GLES20 . GL_COMPILE_STATUS , status , 0 ) ;
if ( compiled [ 0 ] = = 0 ) {
if ( status [ 0 ] = = 0 ) {
Log . e ( "CameraGLRendererBase" , "Could not compile fragment shader:" + GLES20 . glGetShaderInfoLog ( fshader ) ) ;
Log . e ( "CameraGLRendererBase" , "Could not compile fragment shader:" + GLES20 . glGetShaderInfoLog ( fshader ) ) ;
GLES20 . glDeleteShader ( vshader ) ;
GLES20 . glDeleteShader ( vshader ) ;
GLES20 . glDeleteShader ( fshader ) ;
GLES20 . glDeleteShader ( fshader ) ;
@ -244,9 +244,25 @@ public abstract class CameraGLRendererBase implements GLSurfaceView.Renderer, Su
GLES20 . glAttachShader ( program , vshader ) ;
GLES20 . glAttachShader ( program , vshader ) ;
GLES20 . glAttachShader ( program , fshader ) ;
GLES20 . glAttachShader ( program , fshader ) ;
GLES20 . glLinkProgram ( program ) ;
GLES20 . glLinkProgram ( program ) ;
Log . d ( "CameraGLRendererBase" , "shaders were compiled OK" ) ;
GLES20 . glDeleteShader ( vshader ) ;
GLES20 . glDeleteShader ( vshader ) ;
GLES20 . glDeleteShader ( fshader ) ;
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 ;
return program ;
}
}