Where did you install Firefox from? Help Mozilla uncover 3rd party websites that offer problematic Firefox installation by taking part in our campaign. There will be swag, and you'll be featured in our blog if you manage to report at least 10 valid reports!

搜尋 Mozilla 技術支援網站

防止技術支援詐騙。我們絕對不會要求您撥打電話或發送簡訊,或是提供個人資訊。請用「回報濫用」功能回報可疑的行為。

Learn More

Cannot load webgl texture using "data:image/jpg;base64" style URI. This is forcing me to download texture files explicitly, rather than embed them in my binary buffer.

  • 1 回覆
  • 3 有這個問題
  • 2 次檢視
  • 最近回覆由 knorretje

more options

I am creating a webgl texture using following technique:

var textureBuffer = new Uint8Array(this.modeldataBuffer, sourceImage.data.offset, sourceImage.data.size);

var image = new Image();
var binary = '';

for (var i = 0, l = textureBuffer.byteLength; i < l; i++) {
     binary += String.fromCharCode(textureBuffer[i]);
}

image.src = "data:image/" + sourceImage.type + ";base64," + window.btoa(binary);

Now use this image to create WebGL texture, which fails and throws following error:

Error: uncaught exception: [Exception... "Failure arg 5 [nsIDOMWebGLRenderingContext.texImage2D]” nsresult: “0×80004005 (NS_ERROR_FAILURE)” location: “JS frame :: loadmodel.js:: line 446″ data: no]


This used to work in FF5, but seems to have been broken in FF6. Is this intentional (i.e. part of cross-domain security fix) or a bug?

This will force me to download individual textures...much more slower than loading it from a single binary file.

I am creating a webgl texture using following technique: <pre><nowiki>var textureBuffer = new Uint8Array(this.modeldataBuffer, sourceImage.data.offset, sourceImage.data.size); var image = new Image(); var binary = ''; for (var i = 0, l = textureBuffer.byteLength; i < l; i++) { binary += String.fromCharCode(textureBuffer[i]); } image.src = "data:image/" + sourceImage.type + ";base64," + window.btoa(binary);</nowiki></pre> ------------------------------------------------------------ Now use this image to create WebGL texture, which fails and throws following error: Error: uncaught exception: [Exception... "Failure arg 5 [nsIDOMWebGLRenderingContext.texImage2D]” nsresult: “0×80004005 (NS_ERROR_FAILURE)” location: “JS frame :: loadmodel.js:: line 446″ data: no] This used to work in FF5, but seems to have been broken in FF6. Is this intentional (i.e. part of cross-domain security fix) or a bug? This will force me to download individual textures...much more slower than loading it from a single binary file.

由 cor-el 於 修改

所有回覆 (1)

more options

I think this is part of the cross-domain security fix for web-gl textures. See cross domain texture