Page 9 of 21

Posted: Thu Dec 21, 2006 4:49 pm
by diamond
Собственно, бага с вылетом gmon повторить тоже не удалось, но по скриншоту понятно, в чём там дело.
Heavyiron wrote:Последняя версия эмулятора (если не запускать kiwntf.exe) как-то слишком подозрительно замедлилась в работе.
Попробуй закомментировать в KlbrInWin.asm строчки 4250,4251: data resource и соответствующее end data, перекомпилировать и посмотреть на скорость работы. Также независимо попробуй закомментировать строчки 1376,1377: jz wmsetcursor. Если ни в одном случае скорость не повысится, скорее всего, дело не в эмуляторе, ибо других глобальных изменений в последнее время вроде бы не было.
YELLOW, Mario79
Винда случайно не 98-я? Я догадываюсь, в чём там может быть ошибка (в конечном счёте - в моей лени, под XP код работает, хотя вообще-то не обязан), завтра выложу исправленную версию.

Posted: Thu Dec 21, 2006 7:06 pm
by YELLOW
Винда XP SP2.

Posted: Fri Dec 22, 2006 1:10 pm
by Mario79
diamond
Хрюшка SP1

Posted: Fri Dec 22, 2006 3:26 pm
by diamond
Доработан код эмуляции 70-й функции, теперь по идее глюк с неправильной обработкой некорневых папок должен исчезнуть.

Posted: Mon Jan 08, 2007 6:27 pm
by diamond
Исправлен один баг в функции 18.11; функция 71.1, как и в Колибри, теперь устанавливает флаг наличия заголовка, даже если он не передаётся в функции 0.

Posted: Mon Jan 08, 2007 7:40 pm
by mike.dld
При разработке новой версии Tinypad'а заметил ещё один баг, не знаю насколько известный и исправленный ли: функция 71.1 не перерисовывает заголовок полностью, а лишь рисует новый текст поверх старого. Ну и ещё один, до кучи (более пожелание): нужно бы сделать перемещение окон таким как в КоОС; дело в том, что сейчас эмулятор посылает окну события о перерисовке в крайне неправильные моменты, в результате, например, не закрывается окно всплывающего меню всё того же Tinypad'а.

Posted: Tue Jan 09, 2007 12:53 pm
by diamond
пока неизвестный и неисправленный, но уже принятый к сведению

Posted: Tue Jan 09, 2007 3:03 pm
by YELLOW
diamond
Я тут наколбасил описалово к замеченному мной глюку. Можешь скачать здесь. http://ifolder.ru/822608 Там один Word-овский документ в RAR-архиве. Если что, пиши помогу чем могу :) (кодинг и тестирование).

Posted: Tue Jan 09, 2007 3:59 pm
by diamond
YELLOW
Цитата из KlbrInWin.ini:
# path to ramdisk, must end with '\'
# hd<i>_<j> = Win32 path for /hd<i>/<j>, 0 <= i <= 3, 1 <= j <= hd<i>n
# must end with '\'

Posted: Tue Jan 09, 2007 4:09 pm
by YELLOW
diamond
Ок, спасибо, ступил. :oops: :(

Posted: Wed Jan 10, 2007 5:36 am
by mike.dld
Ещё пара багов, и опять же в процессе тестирования нового Tinypad'а :) Они в принципе из одной области: 1) не работает удаление кнопок (8-я функция, 31-й бит в EDX) и 2) при поиске нажатой кнопки они перебираюся в прямом порядке (в порядке их создания), а нужно вроде бы в обратном (хотя я и не уверен).
И ещё предложение от Victor'а - добавить в эмулятор функцию 18.13.

Posted: Thu Jan 11, 2007 6:32 pm
by diamond
1) не работает удаление кнопок (8-я функция, 31-й бит в EDX)
В принципе я его писал... это, правда, не гарантирует работы написанного кода... Кстати, хочу обратить внимание, что в Колибри при удалении кнопки не происходит удаления её изображения (по понятным причинам).
Почитал исходники ядра... обнаружил, что функция 8 удаляет все кнопки с заданным идентификатором, а KlbrInWin - только первую найденную... надеюсь, не это имеется в виду?
2) при поиске нажатой кнопки они перебираюся в прямом порядке (в порядке их создания), а нужно вроде бы в обратном (хотя я и не уверен).
Насколько я понимаю, цикл в checkbuttons идёт в прямом порядке (с переменной цикла esi) и ищется первое попавшее вхождение.
И ещё предложение от Victor'а - добавить в эмулятор функцию 18.13.
С какой версией ядра? С каким идентификатором системы (UID_KOLIBRI или предложенный Victor'ом UID_KlbrInWin)?

Posted: Thu Jan 11, 2007 9:11 pm
by vectoroc
Идентификатор - UID_KlbrInWin (хотя я несколько другой предлагал, но этот получше :))
Версия - ревизия эмулятора, ревизия ядра, которое эмулятор полностью реализует..

Posted: Fri Jan 12, 2007 11:35 am
by mike.dld
Имеется в виду именно то, что кнопки не удаляются. Можешь глянуть сам: для преключения между табами в Tinypad'е используются кнопки, и при переключении на какой-либо таб все кнопки удаляются и создаются заново так, чтобы на активном табе кнопки не было. Плюс, кнопки пересоздаются при скроллинге табов влево/вправо. Про второй пункт я был неуверен, но считаю моё описание более правильным с функциональной точки зрения. То есть, даже в Windows когда кнопки создаются одна за другой и перекрывают друг друга, сверху оказывается кнопка, созданная позже остальных. И, соотвественно, когда я нажимаю мышью клавишу в области пересечения кнопок, опять же нажимается именно та, которая была создана позже.

EDIT: забыл про ещё пару багов :) 1) высота кэпшна в эмуляторе фиксированная, в то время как для скиновых окон она указывается в .skn файле; 2) если максимизмровать окно, перевести фокус на другое окно и потом щёлкнуть на окне эмулятора по рамке или кэпшну (по неклиентской области) - оно не активизируется.

EDIT: кстати, иногда бывает, что эмулятор вылетает и после этого не запускается, выдавая сообщение о том, что драйвер не может быть загружен... помогает перезагрузка венды. что-нибудь об этом известно, или только у меня такое?

Posted: Fri Jan 12, 2007 5:18 pm
by Heavyiron
EDIT: кстати, иногда бывает, что эмулятор вылетает и после этого не запускается, выдавая сообщение о том, что драйвер не может быть загружен... помогает перезагрузка венды. что-нибудь об этом известно, или только у меня такое?
У меня тоже один раз такое было, но не помню точно, при каких условиях