dart:web_gl: RENDER WARNUNG: die textur gebunden an textur-Einheit 0 ist nicht renderable
Ich bin immer der Fehler [.WebGLRenderingContext]RENDER WARNING: texture bound to texture unit 0 is not renderable. It maybe non-power-of-2 and have incompatible texture filtering or is not 'texture complete'
wenn ich meine web app im dartium. Ich habe versucht, dieses Problem zu beheben, für zwei Tage, einschließlich einer vollständigen rewrite des Codes, Aber ich kann nicht die genaue Ursache des Problems.
Ich denke, das problem liegt in diesem Stück code, jedoch.
void main() {
...
var texture = gl.createTexture();
var image = new ImageElement();
image.onLoad.listen((e) {
gl.bindTexture(webGL.TEXTURE_2D, texture);
gl.texImage2DImage(webGL.TEXTURE_2D, 0, webGL.RGBA, webGL.RGBA,
webGL.UNSIGNED_BYTE, image);
gl.texParameteri(webGL.TEXTURE_2D, webGL.TEXTURE_MAG_FILTER, webGL.NEAREST);
gl.texParameteri(webGL.TEXTURE_2D, webGL.TEXTURE_MIN_FILTER, webGL.NEAREST);
gl.bindTexture(webGL.TEXTURE_2D, null);
});
image.src = "tex.png";
...
}
tex.png ist 32x32
Irgendwelche Ideen, was das problem ist?
- Tut gl.generateMipmap(gl.TEXTURE_2D); Hilfe Sie?
- Tut es das nicht. Und ist das nicht, nur notwendig, wenn Sie eine mipmap-parameter?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sofort nachdem der code in meiner Frage, ich hatte gebunden, die textur und senden Sie das sampler-uniform. Das war falsch, denn es wurde ausgeführt, bevor das Bild geladen. Um dies zu beheben, habe ich die Anrufe zum binden der textur und ziehen Sie Elemente in die onload-Funktion:
was macht Sie sicher, dass das Bild geladen hat.
Vor, es würde nur weisen die onload-callback und führen Sie dann den nächsten Satz von Befehlen, die beteiligten binden der textur - aber weil der computer ist sehr schnell, es hatte bereits gebunden, die textur und versuchte es zu ziehen, bevor das Bild fertig geladen ist.