From b3ca03b685eeed8f73a9474c360b877a3854338d Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Mon, 21 Jul 2014 13:12:02 -0700 Subject: [PATCH] Fix race condition with ImageSprite loading --- js/render/drawsymbol.js | 3 +++ js/style/imagesprite.js | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/js/render/drawsymbol.js b/js/render/drawsymbol.js index 79ebd26158e..46ada432bef 100644 --- a/js/render/drawsymbol.js +++ b/js/render/drawsymbol.js @@ -42,6 +42,9 @@ function drawSymbol(gl, painter, bucket, layerStyle, posMatrix, params, imageSpr var sdf = text || bucket.elementGroups.sdfIcons; var shader, buffer, texsize; + if (!text && !imageSprite.loaded()) + return; + gl.activeTexture(gl.TEXTURE0); if (sdf) { diff --git a/js/style/imagesprite.js b/js/style/imagesprite.js index c78dd18b94a..f12222d9dae 100644 --- a/js/style/imagesprite.js +++ b/js/style/imagesprite.js @@ -61,6 +61,10 @@ ImageSprite.prototype.resize = function(gl) { ImageSprite.prototype.bind = function(gl, linear) { var sprite = this; + + if (!sprite.loaded()) + return; + if (!sprite.texture) { sprite.texture = gl.createTexture(); gl.bindTexture(gl.TEXTURE_2D, sprite.texture);