Page 2 of 3

Posted: Mon Jun 11, 2007 7:41 pm
by camper
Курсор-крестик не мигает в рабочем окне!

Posted: Mon Jun 11, 2007 8:35 pm
by Serial
Ghost
Вот дублирую: http://depositfiles.com/ru/files/1004309

camper
Что-то я не очень понял мысль..

Posted: Mon Jun 11, 2007 11:27 pm
by camper
Serial все в полном порядке, просто я сокрушался одн время что курсор колибри в окнах обычно мелькает и на медленных компах порой вообще его не видно, в рокетсах курсор-крестик не мелькает и не пропадает, вот бы эту возможность взять и перенести в базовый курсор.

Posted: Tue Jun 12, 2007 12:36 am
by Gagarin
camper wrote:Serial все в полном порядке, просто я сокрушался одн время что курсор колибри в окнах обычно мелькает и на медленных компах порой вообще его не видно, в рокетсах курсор-крестик не мелькает и не пропадает, вот бы эту возможность взять и перенести в базовый курсор.
ага вот это было бы супер!!!
А то пользуюсь кос 2 час уже глаза из за него болят :(
в игре понг он вообще пропадает и игра глючит из за него

Posted: Tue Jun 12, 2007 1:49 am
by Serial
camper

Хех))
А в какой версии курсор не мерцает, с индексом "h" или "s"?

Posted: Tue Jun 12, 2007 3:23 pm
by camper
вроде бы в обеих нормально

Posted: Tue Jun 12, 2007 5:21 pm
by Serial
camper

Тогда дело в том, что я перерисовываю не всё окно 0-ой функцией, а только движущиеся объекты (и даже фон каждый раз не заливаю).

Posted: Tue Jun 12, 2007 5:33 pm
by Leency
Мне кажется можно всё сделать проще - чтобы функция 0 перерисовывала не всё окно, а только активную область без заголовка. А вот например функция 0, подфункция 1 окно вместе с заголовком. Можно наоборот, но лучше так.

Это реально сделать?

Posted: Tue Jun 12, 2007 6:46 pm
by Serial
Leency

Дада.. реально. И было бы довольно таки полезно.
Но это уже не ко мне. Я с ассемблером на "Вы" разговариваю :)

Posted: Tue Jun 12, 2007 7:29 pm
by mike.dld
Функция 0 имеет так называемый "флаг C" (EDX). Если он установлен, при вызове функции не закрашивается рабочая область. Используется в Tinypad и KFAR, то есть программах, которые полностью рисуют рабочую область сами.

Ссылка на описание: http://kolibrios.org/?p=Documentation&s ... 00&lang=ru

Posted: Tue Jun 12, 2007 7:49 pm
by Leency
А сдесь смысл в обратном - чтоб рабочая область перерисовывалась, а заголовок если надо перерисует сам чел.

Posted: Tue Jun 12, 2007 8:47 pm
by mike.dld
Leency
Ты, наверное, немного не понимаешь. Единственное место, где должен рисовать программист - это рабочая область. Заголовок в любом случае рисует ядро, и самому ничего на нём рисовать крайне не рекоммендуется, хотя бы потому, что в будущем (не знаю, насколько далёком), программе просто не будет дозволено там рисовать.
Рисование же рабочей области ядром нужно крайне не всегда, и мерцание объектов при вызове 0-й функции (насколько я понял) происходит из-за того, что ядро зарисовывает рабочую область цветом фона, и после этого на нём рисуются объекты, что есть медленно.

Posted: Fri Jun 15, 2007 6:47 pm
by diamond
Какая, нафиг, "перерисовка только рабочей области"? Она тут явно ни при чём. Мне кажется, дело в следующем. Заслуга программы только в том, что не мигает её окно - это потому что использован идеологически правильный подход (перерисовывать только то, что реально изменилось). Курсор в rforces не пропадает из-за особенностей кода ядра - конкретно, функция 7 (используемая в том же pong, но не в rforces) и функция 38 используют разные методы работы с курсором:

Code: Select all

.doit:
        inc     [mouse_pause]
...
        dec     [mouse_pause]
...
        jmp     [draw_pointer]
versus

Code: Select all

        call    [disable_mouse]
...
        call    [draw_pointer]
        ret

Posted: Mon Jun 18, 2007 7:25 am
by Mario79
diamond
Я уже вот год как жду, как кто-нибудь перепишет код курсора. Текущий вариант дорабатывал я и не спорю, что он мягко выражаясь неоптимален. Однако все почему-то только говорят о проблеме с курсором, но никто не берется...
Да и потом если сейчас переписать вывод курсора, то вероятность объединения графического ядра и плоского вообще будет стремиться к нулю. Впрочем, оно и сейчас уже близко к нулю.

Posted: Mon Jun 18, 2007 4:35 pm
by diamond
Mario79
Не так уж много народу действительно могут это сделать, а все, кто могут, заняты более интересными и/или полезными вещами.