Webgl gl.viewport изменение

У меня проблема с изменением размера холста и синхронизацией gl.viewport.
Допустим, я начинаю с холста 300x300 холста и инициализирую gl.viewportпри тех же размерах (gl.vieport(0, 0, 300, 300))..
После этого в консоли браузера делаю тесты:

  1. Я меняю размер своего холста , используя jquery, вызывая что-то вроде$("#scene").width(200).height(200)

  2. После этого я вызываю функцию resizeWindow:

    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после этого звонка занимает только часть моего холста.
Может ли кто-нибудь сказать мне, что происходит не так?

9
задан gion_13 14 April 2015 в 11:51
поделиться