Board.KolibriOS.org

Official KolibriOS board
It is currently Sat May 25, 2019 12:51 am

All times are UTC+03:00




Post new topic  Reply to topic  [ 24 posts ]  Go to page 1 2 Next
Author Message
PostPosted: Sat Mar 16, 2013 2:16 am 
Offline

Joined: Tue Oct 05, 2010 6:05 pm
Posts: 214
Программка 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 131 times
Top
   
PostPosted: Sat Mar 16, 2013 9:54 am 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Полупрозрачность будет только на аппаратных курсорах и то смотря как биты в драйвере выставлены.


Top
   
PostPosted: Sat Mar 16, 2013 11:42 am 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
Quote:
курсор меняется, не при клике, а при клике и последующем сдвиге курсора.
У меня такая же проблема в fNav. В той теме я писал, что он у меня меняется не сразу, а только если подвигать мышью, поэтому приходится делать это программно.

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

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

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


Top
   
 Post subject: Baby Painter #2
PostPosted: Tue Oct 01, 2013 1:22 am 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5047
EDIT by yogev_ezra: Обсуждение курсора перенесено по просьбе lev из темы Baby Painter.

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

_________________
Через тернии к звездам


Top
   
 Post subject: Re: Baby Painter
PostPosted: Tue Oct 01, 2013 1:46 am 
Offline

Joined: Tue Oct 05, 2010 6:05 pm
Posts: 214
Двигал - не понравилось. Лучше починки дождусь.


Top
   
 Post subject: Re: Baby Painter
PostPosted: Tue Oct 01, 2013 2:05 am 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
lev wrote:
Двигал - не понравилось. Лучше починки дождусь.

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

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Top
   
 Post subject: Re: Baby Painter
PostPosted: Tue Oct 01, 2013 2:31 am 
Offline

Joined: Tue Oct 05, 2010 6:05 pm
Posts: 214
Зачем костыль в программе? В 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 ситуаций и править надо совсем в другом месте и совершенно не то и т.п.
Я подожду.


Top
   
 Post subject: Re: Baby Painter
PostPosted: Tue Oct 01, 2013 3:26 am 
Offline
Kernel Developer

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

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

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Top
   
 Post subject: Re: Baby Painter
PostPosted: Tue Oct 01, 2013 4:30 am 
Offline

Joined: Tue Oct 05, 2010 6:05 pm
Posts: 214
Leency wrote:
"Ладно, я тут забегу через полгода-год может у вас что тогда поменяется."
:D


Top
   
 Post subject: Re: Baby Painter
PostPosted: Tue Oct 01, 2013 10:01 am 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5047
Mario_r4
То, что нет времени самая левая отмазка :) Помог бы человеку, хоть советом.

_________________
Через тернии к звездам


Top
   
 Post subject: Re: Baby Painter
PostPosted: Tue Oct 01, 2013 10:21 am 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
Leency wrote:
Mario_r4
То, что нет времени самая левая отмазка :) Помог бы человеку, хоть советом.

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

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Top
   
 Post subject: Re: Baby Painter
PostPosted: Tue Oct 01, 2013 11:06 am 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5047
lev
В таком случае, нужно просто брать и править код. Вначале протестировать у себя на машине, перед заливкой в транк. Если вылезут старые ошибки - это прекрасно, их можно будет исправить. Вылезут новые, тоже можно будет исправить, а ели что откатить изменения.
Вообще исправление багов - это всегда два шага вперёд, один назад. Так что не бойся, фиксь транк, фиксь его полностью.

_________________
Через тернии к звездам


Top
   
 Post subject: Re: Baby Painter
PostPosted: Tue Oct 01, 2013 11:40 am 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
lev
Немного хитрее. Курсор всегда отрисовывается потоком ядра.
Code:
        mov     [redrawmouse_unconditional], 1
        call    wakeup_osloop


Top
   
PostPosted: Tue Nov 05, 2013 11:41 pm 
Offline

Joined: Tue Oct 05, 2010 6:05 pm
Posts: 214
Попытка правки фукции 37.5
Не нашел wakeup_osloop, поэтому воспользовался первым методом из собственного поста.
Тестировать можно на файликах из данной темы и на BabyPainter


Top
   
PostPosted: Wed Nov 06, 2013 12:46 am 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5047
BabyPainter пофикшен. Может мне кажется, иконки не стали больше моргать при перетаскивании?

_________________
Через тернии к звездам


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 24 posts ]  Go to page 1 2 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited