Board.KolibriOS.org
https://board.kolibrios.org/

Вопросики о курсоре
https://board.kolibrios.org/viewtopic.php?f=36&t=2256
Page 1 of 2

Author:  lev [ Sat Mar 16, 2013 2:16 am ]
Post subject:  Вопросики о курсоре

Программка xo1.kex (см. аттач). Должна при каждом клике менять курсор.
Под KlbrInWin - работает как задумано, под Qemu курсор меняется, не при клике, а при клике и последующем сдвиге курсора.
---
xo3.kex - после смены курсора програмно сдвигаю его на 1 пиксель в сторону
в Qemu - курсор меняется, но сдвижки не хочется. В KlbrInWin сдвижка происходит не на пиксель, а аж вылетает за пределы формы.
---
xo4.kex - вариант со сдвижкой и возвратом в ту же координату
в Qemu курсор не меняется, опять требуется hexyfz сдвижка, в KlbrInWin дребезг курсора, видимо успевает несколько раз сменить курсор пока нажата кнопка.


xo2.kex - курсоры с полупрозрачностью
В KlbrInWin отображаются нормально, в Qemu мусор. В хелпе написано - "файл курсора должен быть в формате .cur, стандартном для MS Windows", на прозрачность ограничений не накладывается.


Вопросы - кто виноват и что делать работает ли xo1.kex как положено не в эмуляторах, а на реальной системе (сам проверить не могу). Если работает, то есть ли эмулятор в котором тоже работает, чтобы перейти на него с Qemu.
То же самое, касаемо полупрозрачных курсоров из xo2.kex.


Не знаю, соотносятся ли мои вопросы с предыдущими курсорными темами, если надо, то объедините

Attachments:
File comment: Тесты курсора
xo.7z [3.86 KiB]
Downloaded 164 times

Author:  Serge [ Sat Mar 16, 2013 9:54 am ]
Post subject:  Re: Вопросики о курсоре

Полупрозрачность будет только на аппаратных курсорах и то смотря как биты в драйвере выставлены.

Author:  0CodErr [ Sat Mar 16, 2013 11:42 am ]
Post subject:  Re: Вопросики о курсоре

Quote:
курсор меняется, не при клике, а при клике и последующем сдвиге курсора.
У меня такая же проблема в fNav. В той теме я писал, что он у меня меняется не сразу, а только если подвигать мышью, поэтому приходится делать это программно.

С прозрачными курсорами тоже проблема.
Spoiler: Show
В VirtualBox работает правильно:
Image

На реальной системе без драйвера — тоже правильно:
Image

А вот с драйвером — не совсем:
Image

Author:  Leency [ Tue Oct 01, 2013 1:22 am ]
Post subject:  Baby Painter #2

EDIT by yogev_ezra: Обсуждение курсора перенесено по просьбе lev из темы Baby Painter.

lev wrote:
Угу, я этому даже темку посвящал - Вопросики о курсоре.
Точно, видел. Почему бы пока что не использовать такой подход:
0CodErr wrote:
У меня такая же проблема в fNav. В той теме я писал, что он у меня меняется не сразу, а только если подвигать мышью, поэтому приходится делать это программно.

Author:  lev [ Tue Oct 01, 2013 1:46 am ]
Post subject:  Re: Baby Painter

Двигал - не понравилось. Лучше починки дождусь.

Author:  Mario_r4 [ Tue Oct 01, 2013 2:05 am ]
Post subject:  Re: Baby Painter

lev wrote:
Двигал - не понравилось. Лучше починки дождусь.

Вот так вот и остальные "Ладно, я тут забегу через полгода-год может у вас что тогда поменяется."

Author:  lev [ Tue Oct 01, 2013 2:31 am ]
Post subject:  Re: Baby Painter

Зачем костыль в программе? В 37.5 должна быть принудительная перерисовка курсора.
Допустим я подозреваю, что в svn\kolibri\kernel\trunk\video\cursors.inc - proc set_cursor или в kernel.asm - app_set_cursor: должно быть воткнуто что-то вроде:
mov [redrawmouse_unconditional], 1
call __sys_draw_pointer
Но я с ядром дела не имел, портить проверять не полезу. А ядерщику имхо несложно поправить, или наоборот опровергнуть меня и указать, что подобной правкой мы затронем 100500 других функций, не учтём over 9000 ситуаций и править надо совсем в другом месте и совершенно не то и т.п.
Я подожду.

Author:  Mario_r4 [ Tue Oct 01, 2013 3:26 am ]
Post subject:  Re: Baby Painter

lev wrote:
Но я с ядром дела не имел, портить проверять не полезу. А ядерщику имхо несложно поправить, или наоборот опровергнуть меня и указать, что подобной правкой мы затронем 100500 других функций, не учтём over 9000 ситуаций и править надо совсем в другом месте и совершенно не то и т.п.
Я подожду.

Ну, жди. У ядерщиков есть и другие более насущные вопросы, и ты не поверишь у них существует даже IRL насущные вопросы. :lol:

Author:  lev [ Tue Oct 01, 2013 4:30 am ]
Post subject:  Re: Baby Painter

Leency wrote:
"Ладно, я тут забегу через полгода-год может у вас что тогда поменяется."
:D

Author:  Leency [ Tue Oct 01, 2013 10:01 am ]
Post subject:  Re: Baby Painter

Mario_r4
То, что нет времени самая левая отмазка :) Помог бы человеку, хоть советом.

Author:  Mario_r4 [ Tue Oct 01, 2013 10:21 am ]
Post subject:  Re: Baby Painter

Leency wrote:
Mario_r4
То, что нет времени самая левая отмазка :) Помог бы человеку, хоть советом.

Для меня что помогать советом, что самому код смотреть одинаково. Лень тут совершенно не при чем - у меня действительно недостаток времени наблюдается.

Author:  Leency [ Tue Oct 01, 2013 11:06 am ]
Post subject:  Re: Baby Painter

lev
В таком случае, нужно просто брать и править код. Вначале протестировать у себя на машине, перед заливкой в транк. Если вылезут старые ошибки - это прекрасно, их можно будет исправить. Вылезут новые, тоже можно будет исправить, а ели что откатить изменения.
Вообще исправление багов - это всегда два шага вперёд, один назад. Так что не бойся, фиксь транк, фиксь его полностью.

Author:  Serge [ Tue Oct 01, 2013 11:40 am ]
Post subject:  Re: Baby Painter

lev
Немного хитрее. Курсор всегда отрисовывается потоком ядра.
Code:
        mov     [redrawmouse_unconditional], 1
        call    wakeup_osloop

Author:  lev [ Tue Nov 05, 2013 11:41 pm ]
Post subject:  Re: Вопросики о курсоре

Попытка правки фукции 37.5
Не нашел wakeup_osloop, поэтому воспользовался первым методом из собственного поста.
Тестировать можно на файликах из данной темы и на BabyPainter

Author:  Leency [ Wed Nov 06, 2013 12:46 am ]
Post subject:  Re: Вопросики о курсоре

BabyPainter пофикшен. Может мне кажется, иконки не стали больше моргать при перетаскивании?

Page 1 of 2 All times are UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/