Webgl gl.viewport ändern
Ich habe ein Problem mit der Größenänderung der Leinwand undgl.viewport
synchronisieren.
Angenommen, ich beginne mit der Leinwand300x300 Leinwandund die Initialisierung vongl.viewport
in den gleichen Größen (gl.vieport(0, 0, 300, 300)
).
Danach mache ich in der Browserkonsole meine Tests:
Ich verändere die Größe meiner Leinwand, benutze jquery und rufe so etwas wie$("#scene").width(200).height(200)
Danach rufe ich meine resizeWindow-Funktion auf:
function resizeWindow(width, height){
var ww = width === undefined? w.gl.viewportWidth : width;
var h = height === undefined? w.gl.viewportHeight : height;
h = h <= 0? 1 : h;
w.gl.viewport(0, 0, ww, h);
mat4.identity(projectionMatrix);
mat4.perspective(45, ww / h, 1, 1000.0, projectionMatrix);
mat4.identity(modelViewMatrix);
}
Funktion, die das Ansichtsfenster mit den erforderlichen Abmessungen synchronisiert.Leider meinegl.viewport
nach diesem aufruf nimmt nur noch ein teil meiner leinwand ein.
Kann mir jemand sagen, was falsch läuft?