Forum

User posts Ivan Lyubovnikov
10 August 2016 10:29
а когда сл. релиз? может все-же сделать прямой доступ к отрис. кадров ?
релиз каждый месяц, но вряд ли мы это сделаем в ближайшее время - не приоритет

про дебаг на устройстве
в особо сложных случаях можно использовать weinre:
https://www.npmjs.com/package/weinre
http://stackoverflow.com/a/19439498
09 August 2016 21:29
какой вообще эффект должна оказать данная переменная?
ну она влияет на смену буферов при рендеринге и может приводить к багам на некоторых мобильниках,
это уже в качестве последнего варианта , но, видимо, дело не в ней

попробовал все так же сначала строе изображение и потом целк и новое около 1сек все
вообще, если даже и выставлять 60, то задержка все равно будет зависеть от реального фпс, а он, как я понял, в районе 2-4 кадров - это значит, что она так или иначе будет доходить до 0.5 сек.

если у вас она больше, то сложно сказать, в чем дело, надо дебажить код, возможно, это специфика конкретного устройства - можно сымитировать похожее поведение на десктопе и посмотреть, что будет там

в любом случае можно допилить исходники и вывести наружу функцию frame: ссылка, чтобы принудительно отрисовать кадр в нужный момент времени
я бы посоветовал так и сделать, если по-другому не получается
09 August 2016 15:47
а можно как то без исходников и пересборки туда достучаться из JS?
не, это все зашито внутри

а вы какую версию используете? b4w.min.js? можно просто в ней поискать "preserveDrawingBuffer", он в одном месте встречается
09 August 2016 15:26
в движке есть только frustum culling, который срабатывает автоматически, если объект находится полностью за пределами видимой области

каких-то дополнительных методов для отсечений у нас нет
09 August 2016 15:22
можете ещё попробовать в исходниках проставить здесь false:
config.js
- как недавно выяснилось, этот флаг в принципе может приводить к багам на ряде устройств
09 August 2016 13:53
с первым кадром который всеравно показывается старый
а к этому моменту render_cb уже вызвался, или он позже срабатывает через секунду?
09 August 2016 11:02
1 фпс тоже лучше выставлять в render_cb как то так:

function frame_cb() {
    if (m_main.is_paused())
        m_cfg.set("max_fps", 60);
}

function render_cb() {
    m_cfg.set("max_fps", 1);
    checkTime();
}
09 August 2016 10:53
    if (m_main.is_paused()) {
        m_cfg.set("max_fps", 60);
    }
    if (!m_main.is_paused()) {
        m_cfg.set("max_fps", 1);
    }

этот код надо вернуть в frame_cb - он работает всегда, а render_cb - только, когда пауза выключена

checkTime(); тогда надо оставить в render_cb без проверок
08 August 2016 10:58
основной кусок кода прошу глянуть постарался убрать всякое дополнительное не относящееся к проблеме….. черновик так скзать может конечно чтото намудрил то поправьте плиз
в листенере ambientmodechanged тоже m_main.resume() вызывается без выставления fps, может дело в этом?

Я сейчас ( см код выше) использую для расчета положения стрелок внешний тайм аут, а может мне по калбеку перед рендером его вычислять? или после? чтоб управлени все было из цикла рендера.. модет тогда и часть прблем с старыми карами исчезнет?
лучше, конечно, синхронизировать с циклом рендеринга, делая расчет перед рендером (set_render_callback). Сейчас он вызывается постоянно каждые 0.5 сек, а так будет раз в секунду и останавливаться по паузе. Не уверен, что проблемы исчезнут, пока не очень понятно, почему проскакивает несколько старых кадров.
04 August 2016 19:13
т.е. обязательно вызвать m_main.append_loop_cb(frame_cb); и уже в нем задать ?
да, других способов не могу придумать