diff options
Diffstat (limited to 'WebCore/platform/graphics/android/ShaderProgram.cpp')
-rw-r--r-- | WebCore/platform/graphics/android/ShaderProgram.cpp | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/WebCore/platform/graphics/android/ShaderProgram.cpp b/WebCore/platform/graphics/android/ShaderProgram.cpp index 103bb02..0237f03 100644 --- a/WebCore/platform/graphics/android/ShaderProgram.cpp +++ b/WebCore/platform/graphics/android/ShaderProgram.cpp @@ -97,12 +97,16 @@ GLuint ShaderProgram::loadShader(GLenum shaderType, const char* pSource) GLuint ShaderProgram::createProgram(const char* pVertexSource, const char* pFragmentSource) { GLuint vertexShader = loadShader(GL_VERTEX_SHADER, pVertexSource); - if (!vertexShader) - return 0; + if (!vertexShader) { + XLOG("couldn't load the vertex shader!"); + return -1; + } GLuint pixelShader = loadShader(GL_FRAGMENT_SHADER, pFragmentSource); - if (!pixelShader) - return 0; + if (!pixelShader) { + XLOG("couldn't load the pixel shader!"); + return -1; + } GLuint program = glCreateProgram(); if (program) { @@ -125,7 +129,9 @@ GLuint ShaderProgram::createProgram(const char* pVertexSource, const char* pFrag } } glDeleteProgram(program); - program = 0; + program = -1; + } else { + XLOG("couldn't link the shader!"); } } return program; @@ -133,6 +139,11 @@ GLuint ShaderProgram::createProgram(const char* pVertexSource, const char* pFrag ShaderProgram::ShaderProgram() { + init(); +} + +void ShaderProgram::init() +{ m_program = createProgram(gVertexShader, gFragmentShader); m_videoProgram = createProgram(gVertexShader, gVideoFragmentShader); |