캔버스 크기 조정에 문제가 있으며 gl.viewport
동기화가 있습니다.
캔버스 300x300 canvas과 같은 크기 (gl.vieport(0, 0, 300, 300)
)의 gl.viewport
의 초기화로 시작한다고 가정 해 보겠습니다.Webgl gl.viewport 변경
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);
}
- 기능 뷰포트를 동기화하는 것 :
$("#scene").width(200).height(200)
After this, i'm calling my resizeWindow function 같은 것을 호출, jQuery를 사용하여,
I'm changing size of my canvas : 그 후
는 브라우저의 콘솔에서 내 시험을 필수 치수.
불행히도, 내 gl.viewport
이 호출이 내 캔버스의 일부를 소요 한 후.
아무도 나에게 무엇이 잘못 될지 알려주실 수 있습니까?
gl.viewportWidth 또는 gl.viewportHeight에 대해 오해해서 죄송합니다. gl 객체 (js 기능)를 초기화 한 후 순간에 할당 된 매개 변수이므로 gl.viewportWidth = canvas.clientWidth 및 gl.viewportHeight = canvas.clientHeight입니다. 또한이 것들의 철자가 틀린 경우 수정 될 것이지만 수동 매개 resizeWindow를 호출 할 때 문제가 발생합니다. 전송 된 매개 변수가 지배적이어야 할 경우를 대비하여 (코드 참조).
gl.drawingBufferWidth 및 gl.drawingBufferHeight 매우 감사합니다. 정말 도움이되었습니다. – jorj