From 1ff8df893661b8c97fc770a2c08bc810a2faf1e6 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 29 Apr 2013 12:51:16 +0200 Subject: [PATCH] Log WebGL shader and program errors --- src/ol/renderer/webgl/webglmaprenderer.js | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/ol/renderer/webgl/webglmaprenderer.js b/src/ol/renderer/webgl/webglmaprenderer.js index de3c1ffde4..9c471d2e09 100644 --- a/src/ol/renderer/webgl/webglmaprenderer.js +++ b/src/ol/renderer/webgl/webglmaprenderer.js @@ -4,6 +4,7 @@ goog.provide('ol.renderer.webgl.Map'); goog.require('goog.array'); goog.require('goog.asserts'); +goog.require('goog.debug.Logger'); goog.require('goog.dom'); goog.require('goog.dom.TagName'); goog.require('goog.events'); @@ -410,6 +411,12 @@ ol.renderer.webgl.Map.prototype.getProgram = function( gl.attachShader(program, this.getShader(fragmentShaderObject)); gl.attachShader(program, this.getShader(vertexShaderObject)); gl.linkProgram(program); + if (goog.DEBUG) { + if (!gl.getProgramParameter(program, goog.webgl.LINK_STATUS) && + !gl.isContextLost()) { + this.logger_.severe(gl.getProgramInfoLog(program)); + } + } goog.asserts.assert( gl.getProgramParameter(program, goog.webgl.LINK_STATUS) || gl.isContextLost()); @@ -432,6 +439,12 @@ ol.renderer.webgl.Map.prototype.getShader = function(shaderObject) { var shader = gl.createShader(shaderObject.getType()); gl.shaderSource(shader, shaderObject.getSource()); gl.compileShader(shader); + if (goog.DEBUG) { + if (!gl.getShaderParameter(shader, goog.webgl.COMPILE_STATUS) && + !gl.isContextLost()) { + this.logger_.severe(gl.getShaderInfoLog(shader)); + } + } goog.asserts.assert( gl.getShaderParameter(shader, goog.webgl.COMPILE_STATUS) || gl.isContextLost()); @@ -501,6 +514,14 @@ ol.renderer.webgl.Map.prototype.isTileTextureLoaded = function(tile) { }; +/** + * @private + * @type {goog.debug.Logger} + */ +ol.renderer.webgl.Map.prototype.logger_ = + goog.debug.Logger.getLogger('ol.renderer.webgl.Map'); + + /** * @inheritDoc */