diff options
author | Nicolas Roard <nicolas@android.com> | 2011-01-30 19:04:54 -0800 |
---|---|---|
committer | Nicolas Roard <nicolas@android.com> | 2011-01-30 19:04:54 -0800 |
commit | 1a2e2a9d1bbd0829307e9a52aa98d415f8d10e52 (patch) | |
tree | 5283229913f2340f6d9575ac4df1e451c76f67f4 /WebCore/platform/graphics/android/ShaderProgram.cpp | |
parent | 8ffb52a0a92be5cf8f035b7db75f45b5522c97ef (diff) | |
download | external_webkit-1a2e2a9d1bbd0829307e9a52aa98d415f8d10e52.zip external_webkit-1a2e2a9d1bbd0829307e9a52aa98d415f8d10e52.tar.gz external_webkit-1a2e2a9d1bbd0829307e9a52aa98d415f8d10e52.tar.bz2 |
Fix GL error when initializing the browser
bug:3355704
may also fix bug:3383599
Change-Id: I77892c2e90c4edf054513de92b0c6bfba3152819
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); |