我有一個畫布大小調整問題和gl.viewport
同步問題。
假設我以相同尺寸(gl.vieport(0, 0, 300, 300)
)開始畫布300x300 canvas和初始化gl.viewport
。
之後,在瀏覽器的控制檯,我做我的測試:Webgl gl.viewport更改
I'm changing size of my canvas,使用jQuery,呼籲像
$("#scene").width(200).height(200)
After this, i'm calling my resizeWindow function:
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); }
- 功能多數民衆贊成同步視口所需尺寸。
不幸的是,我的gl.viewport
這個電話只需要我的畫布的一部分了。
有誰能告訴我哪裏出了問題?
對於gl.viewportWidth或gl.viewportHeight,這些參數在初始化gl對象(js feature)之後分配的這些參數很抱歉,所以gl.viewportWidth = canvas.clientWidth和gl.viewportHeight = canvas.clientHeight。 另外,如果這些東西拼錯了,它們會被糾正,但是當我嘗試手動調用resizeWindow時出現問題,在傳輸參數的情況下它們應該佔優勢(見代碼)。
對於gl.drawingBufferWidth和gl.drawingBufferHeight非常感謝,它真的幫助我 – jorj 2012-08-08 19:38:53