Board.KolibriOS.org

Official KolibriOS board
It is currently Tue Apr 20, 2021 1:30 pm

All times are UTC+03:00




Post new topic  Reply to topic  [ 253 posts ]  Go to page Previous 19 10 11 12 1317 Next
Author Message
PostPosted: Thu Mar 15, 2012 12:49 pm 
Leency wrote:
Раньше двух чёрных точек (под крестиком и под буквой С) не было.

Исправлено в SVN r. 2463


Top
   
PostPosted: Thu Mar 22, 2012 1:52 am 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5407
Ну очень интересный "баг". существует наверно с начала существования Менуета. Хотя я и не проверял.

По коду у прямоугольника и кнопки должны быть одинаковые размеры, при запуске программы получаются разные. Почему? Проблема компилятора - сомневаюсь... Если нужно - выложу всё необходимое для компиляции.


Attachments:
dir.zip [5.77 KiB]
Downloaded 104 times

_________________
Звиздеть не мешки ворочать
Top
   
PostPosted: Thu Mar 22, 2012 2:26 am 
Да, это так в ядре. Кнопки всегда на 1 пиксель больше в ширину и высоту, чем их реально заданное значение.

Не знаю почему так было сделано. Могу попробовать исправить. Однако кто будет исправлять 100500 приложений, в которых отображение может перекосится?
Я этой работой не желаю заниматься, ди в времени нет на это.


Top
   
PostPosted: Thu Mar 22, 2012 2:51 am 
Offline

Joined: Tue Oct 05, 2010 6:05 pm
Posts: 221
может проще в kolibri.h-- вычесть единички?
Code:
void DefineButton(dword x,y,w,h,EDX,ESI)
{
    EAX = 8;
    EBX = x<<16+w-1;
    ECX = y<<16+h-1;
    $int 0x40
}
Вот, только, код распухнет на два байта :)


Top
   
PostPosted: Thu Mar 22, 2012 2:59 am 
В ядре изначально при разработке, вероятно Вилле, сделал логическую ошибку посчитав что между точками, к примеру, 10 и 20 расстояние в 10, хотя на самом деле расстояние в 11 точек. Так как функция рисующая линии работает с концевыми точками X1 и X2, Y1 и Y2, а данные изначальные задаются X + Xsize и Y + Ysize, то... shit happens! А потом было уже поздно...


Top
   
PostPosted: Thu Mar 22, 2012 10:43 am 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5407
Марат, смотри - можно исправить сейчас и придётся исправлять 100500 приложений или забить и исправить это через 100500 лет, когда таких приложений будет 100500^100500. Перспектива ничего не делать очень заманчива, вот только я боюсь последствий...

_________________
Звиздеть не мешки ворочать


Top
   
PostPosted: Thu Mar 22, 2012 11:45 am 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5407
А разве прямоугольник для рисования не может принимать отрицательные координаты? В то время, как текст может. Тоесть я хочу рисовать на заголовке, причём окно 0х74, поэтому координаты отрицательные - текст выводится, прямоугольник - нет.


Attachments:
trunk.zip [65.82 KiB]
Downloaded 102 times

_________________
Звиздеть не мешки ворочать
Top
   
PostPosted: Thu Mar 22, 2012 1:03 pm 
Leency wrote:
Марат, смотри - можно исправить сейчас и придётся исправлять 100500 приложений или забить и исправить это через 100500 лет, когда таких приложений будет 100500^100500. Перспектива ничего не делать очень заманчива, вот только я боюсь последствий...

Ты сам лично готов исправлять около 300 приложений существующих для Колибри? Я не готов. Это не вопрос принципа - это вопрос потери времени. Проще учесть -1 в размерах обеих координат. Я свое мнение высказал, больше не вижу смысла обсуждать этот вопрос и не буду.
Leency wrote:
А разве прямоугольник для рисования не может принимать отрицательные координаты? В то время, как текст может. Тоесть я хочу рисовать на заголовке, причём окно 0х74, поэтому координаты отрицательные - текст выводится, прямоугольник - нет.

В типичном случае отрицательные координаты не допускались для любых функций. Миша и команда чего-то делали, вероятно сделали не все и не везде.

Рисовать на скине самостоятельно - неправильное решение. При перерисовке это будет мельтешить. Ты же сам очень любишь демонстрировать отрисовку окон в бесконечном цикле.

Для вывода текста есть как параметры ф.0, так и ф.71.


Top
   
PostPosted: Thu Mar 22, 2012 2:37 pm 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5407
3dcube оказывается загружает проц на 100% через 3 секунды после запуска. Если я двигаю мышкой по диагонали секунд через 7 прога вылетает, однажды после такого вылета она даже забрала с собой Эолайт О_о

_________________
Звиздеть не мешки ворочать


Top
   
PostPosted: Thu Mar 22, 2012 2:46 pm 
Не любит он сишных файловых менеджеров. :lol:

Запуск через MENU, KFM, KFAR - никаких вылетов.

Насчет 100% загрузки, так оно пытается нарисовать максимальное количество попугаев,также как почти любая демка.


Top
   
PostPosted: Thu Mar 22, 2012 3:09 pm 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5407
Запусти. Начни быстро возить мышкой с левого нижнего угла украна в верхний правый через окно. Так раз 15 :) Потом должно вылетить.

_________________
Звиздеть не мешки ворочать


Top
   
PostPosted: Thu Mar 22, 2012 3:32 pm 
Я делал, но вылетает только в Eolite. Проверял в Qemu.


Top
   
PostPosted: Sat Mar 24, 2012 11:51 am 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5407
hidnplayer нашёл баг с pipes, у меня до этого был такой же с новыми clicks - а я-то думал, это моя лажа.


Attachments:
File comment: Баг вылазит после нескольких ходов.
new_clicks.zip [3.14 KiB]
Downloaded 112 times

_________________
Звиздеть не мешки ворочать
Top
   
PostPosted: Sat Mar 24, 2012 2:53 pm 
Leency
Слишком много кнопок. Перед тем как новые кнопки ставить - надо старые стирать! Вы (прикладные программисты) не эффективно тратите ресурсы системы. Я исправлю эту недоработку, но тем не менее создавать избыточное количество кнопок не есть хорошо. Можно легко упереться в ограничение максимального количества кнопок в системе.


Top
   
PostPosted: Sat Mar 24, 2012 4:16 pm 
Leency wrote:
hidnplayer нашёл баг с pipes, у меня до этого был такой же с новыми clicks - а я-то думал, это моя лажа.

Исправлено в SVN r. 2504.

Вообще-то это лажа, даже с исправлением ядра. Ядро в настоящее время может иметь до 4095 кнопок, но следует понимать, что это на все приложения системы и единичное приложение не должно занимать много кнопок. После использования их надо возвращать системе, через все ту же ф.8, если этого не делать то это перерасход ресурсов. Система ведь впустую опрашивает неиспользуемые кнопки, даже если не принимать внимания что другим приложениям кнопок может не хватить. Так что в PIPES, clicks и Eolite нужно пересматривать алгоритмы работы с кнопками.

З.Ы. Возможно потому Eolite глючит на больших директориях. ЕМНИП ты однажды сам это говорил.


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 253 posts ]  Go to page Previous 19 10 11 12 1317 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 2 guests


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