Board.KolibriOS.org

Official KolibriOS board
It is currently Sat Oct 31, 2020 2:02 pm

All times are UTC+03:00




Post new topic  Reply to topic  [ 50 posts ]  Go to page Previous 1 2 3 4 Next
Author Message
 Post subject:
PostPosted: Tue Jul 24, 2007 10:08 pm 
Offline

Joined: Sun Mar 11, 2007 4:05 pm
Posts: 64
Quote:
'display_data' где определяется принадлежность точки процессу, к сожалению все биты заняты под номер процесса

Хорошая идея. Нужно просто сделать процесс курсор. Тогда проверка будет коректной. И работать будет быстро.


Top
   
 Post subject:
PostPosted: Wed Jul 25, 2007 8:18 pm 
Offline
User avatar

Joined: Fri May 18, 2007 11:11 pm
Posts: 125
Разобрался как проверяются боксы и рисунки, там используется 'WinMapAddress' имеющий тот же адрес что и 'display_data'.

Pavia
Я бы не стал выносить курсор из ядра, номер процесса нужен только для идентификации точки как курсорной. Если ядро не имеет своих точек на экране, то никаких новых процессов фиксировать не зачем.

Вопрос: незанятые приложениями точки рабочего стола имеют нулевой идентификатор процесса или ядра?


Top
   
 Post subject:
PostPosted: Thu Jul 26, 2007 11:49 am 
Offline
Kernel Developer
User avatar

Joined: Mon Nov 28, 2005 8:00 pm
Posts: 1601
Незанятые приложениями точки экрана заняты ядром - оно там, между прочим, рисует фон, и код отрисовки фона работает только с пикселами процесса 1 (aka OS/IDLE).
Если увеличить размер данных точки в display_data до двух байт, то и памяти этот буфер будет жрать в два раза больше.


Top
   
 Post subject:
PostPosted: Thu Jul 26, 2007 7:50 pm 
Offline
User avatar

Joined: Fri May 18, 2007 11:11 pm
Posts: 125
А процесс с 0-м номером существует? (По крайней мере используется в WinMapAddress?)


Top
   
 Post subject:
PostPosted: Fri Jul 27, 2007 7:31 pm 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5292
Люди, знаете или нет что если демки из папки "3D" закрывать по крестику (соответствующей кнопке), то курсор не исчезает. А вот если закрывать по Alt+F4 (как все и делают, т.к. в окне курсор слишком сильно мерцает), то курсор исчезает с некоторой вероятностью ~50x50.


Top
   
 Post subject:
PostPosted: Fri Jul 27, 2007 11:30 pm 
Offline
User avatar

Joined: Thu Oct 13, 2005 12:00 pm
Posts: 299
вроде бы замечал такое


Top
   
 Post subject:
PostPosted: Sat Jul 28, 2007 11:59 am 
Offline
Kernel Developer
User avatar

Joined: Mon Nov 28, 2005 8:00 pm
Posts: 1601
Alver
Процесса с номером 0 не существует.
Leency
Знаем. Это объясняется тем, что закрытие по крестику - корректное закрытие, поскольку в этом случае система всего лишь сообщает программе, что пользователь приказывает программе закрыться (а программа вольна уточнить у пользователя, действительно ли он этого хочет, что делать с несохранёнными данными, а в принципе может вообще это игнорировать), а при нажатии на Alt+F4 панель безусловно прибивает процесс, не давая ему никаких шансов на очистку - в результате с некоторой вероятностью процесс был в процессе отрисовки, когда курсор выключен, и тогда курсор уже не включается.

_________________
Ушёл к умным, знающим и культурным людям.


Top
   
 Post subject:
PostPosted: Sun Jul 29, 2007 11:12 am 
Offline

Joined: Fri Jan 06, 2006 6:05 am
Posts: 102
А если приложения прибивает @Panel, нельзя ли сделать что-бы оно само восстанавливало курсор?

_________________
Image


Top
   
 Post subject:
PostPosted: Sun Jul 29, 2007 3:06 pm 
Offline
User avatar

Joined: Fri May 18, 2007 11:11 pm
Posts: 125
Понял откуда иногда выскакивают некоторые артефакты.
(Например затирание куска сноски 'end' на панели при выборе меню выход, или перекрытие хвоста курсора приложением и т.п.)
В проце '__sys_disable_mouse' (и возможно не только) при проверки на необходимость стирания курсора проверяется вариант курсора 16x16,
в то время как на самом деле он 32x32.:roll:

mistifi(ator
Quote:
А если приложения прибивает @Panel, нельзя ли сделать что-бы оно само восстанавливало курсор?


Половинчатая мера - процесс можно будет убить и другими приложениями.:(
Чтобы грамотно закрывать процесс необходимо сопоставить ему еще один флаг на состояние курсора, хотябы 1 бит а лучше 2 : 1 - включен/нет а 2 - заморожен/нет( если будет вариант с отрисовкой точек в буфере курсора) :wink:


Top
   
 Post subject:
PostPosted: Sun Jul 29, 2007 10:45 pm 
Offline
User avatar

Joined: Fri May 18, 2007 11:11 pm
Posts: 125
Я ошибся, '__sys_disable_mouse' не проверяет 16x16, но очепятка кажется есть.
Code:
 
      mov   ebx,[ScreenWidth]
      inc   ebx
      imul  ebx,10


Мне думается надо 'imul ebx, 24'
Кроме того интересно, так как нет проверки на зашкаливание хвоста курсора за границы экрана, не случаются ли глюки с курсором на максимальном разрешении kolibri?


Top
   
 Post subject:
PostPosted: Mon Jul 30, 2007 7:09 am 
Alver
Quote:
Кроме того интересно, так как нет проверки на зашкаливание хвоста курсора за границы экрана, не случаются ли глюки с курсором на максимальном разрешении kolibri?

Нет.


Top
   
 Post subject:
PostPosted: Mon Jul 30, 2007 2:48 pm 
Offline
Site Founder
User avatar

Joined: Sun Aug 08, 2004 8:55 am
Posts: 690
Проверка есть, в функции рисования пиксела.


Top
   
 Post subject:
PostPosted: Wed Aug 08, 2007 8:03 pm 
Offline
User avatar

Joined: Thu Mar 01, 2007 7:57 pm
Posts: 835
diamond wrote:
Alver
Процесса с номером 0 не существует.
Leency
Знаем. Это объясняется тем, что закрытие по крестику - корректное закрытие, поскольку в этом случае система всего лишь сообщает программе, что пользователь приказывает программе закрыться (а программа вольна уточнить у пользователя, действительно ли он этого хочет, что делать с несохранёнными данными, а в принципе может вообще это игнорировать), а при нажатии на Alt+F4 панель безусловно прибивает процесс, не давая ему никаких шансов на очистку - в результате с некоторой вероятностью процесс был в процессе отрисовки, когда курсор выключен, и тогда курсор уже не включается.
Мне кажется, если сделать так, чтобы нажатие Alt+F4 посылало тот же сигнал, что и нажатие кнопки закрытия, то это поможет.

_________________
Всех выше те, кто доброе творят,
И за дела добра не ждут наград,
Всем жертвуют для страждущих людей,
Не думая о выгоде своей.


Top
   
 Post subject: Re: Курсоры
PostPosted: Mon Feb 09, 2009 4:33 am 
Offline
User avatar

Joined: Mon Feb 09, 2009 4:13 am
Posts: 445
Я рылся в старых доках и случайно наткнулся на одну статью.Читайте вырезку ниже.
Мужики возможно я ошибаюсь,но мне кажется что мышь мерцает из-за того что в Колибри нет двойной буферизации видео памяти.Если я не прав то оъясните в чем.

_________________
\ Маузер в руке, Путин – на крюке! \ Путину – клизму! Смерть капитализму! \ Путин – параша, победа будет наша!\
\ Застрели буржуя в спину! Он не лучше чем скотина! \
Image


Last edited by Rock_maniak_forever on Mon Feb 09, 2009 6:12 am, edited 3 times in total.

Top
   
 Post subject: Re: Курсоры
PostPosted: Mon Feb 09, 2009 5:07 am 
Offline
Site Founder
User avatar

Joined: Sun Aug 08, 2004 8:55 am
Posts: 690
Rock_maniak_forever
Нам достаточно сказать "двойная буферизация", чтобы всё было понятно. Не обязательно приводить никому не нужную цитату и выделять её синим цветом.

_________________
in code we trust


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 50 posts ]  Go to page Previous 1 2 3 4 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