Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Пт дек 15, 2017 9:30 am

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 240 сообщений ]  На страницу Пред. 112 13 14 15 16 След.
Автор Сообщение
 Заголовок сообщения: Re: libGUI
СообщениеДобавлено: Пт сен 18, 2009 11:07 am 
Атауальпа
Нижепреведенное исключительно мое личное мнение и не претендует звание абсолютной истины (это я написал для тех кто готов вцепится в мой широкий зад, стоит только повернуться к ним спиной)...

Понимаешь программы бывают 2-х видов:
1) Написано чтобы работало, потому особых свистоперделок не наблюдается, из примеров: Miranda (базовая комплектация), Apollo, Total Commander, Far, Unreal Commander, Notepad++, FileZilla FTP ... в общем примеров достаточно.
2) Написано чтобы было красиво, со свистоперделками, рюшечками, раскладными подставкам для ног, встроенными холодильниками и вообще что Бог на душу положит...
Программы второй категории делятся на:
2.1) Те которые вопреки свистоперделкам (но никак не благодаря) работают: Opera, FastStone Image Viewer, Foxit, KMplayer, Tortoise SVN... в общем примеров достаточно.
2.2) Те которые благодаря свистоперделкам работают криво или жрут ресурсы немерянно. Я не буду их перечислять потому что пользователи этих программ с пеной у рта начнут доказывать что я не прав. (У ти моя пусечка, у ти моя хорошая - мы еще с тобой захватим этот поганый мир и установим в нем мир и справедлиовость по нашему разумению, которое априори самое правильное...)


Последний раз редактировалось Mario Пт сен 18, 2009 11:23 am, всего редактировалось 1 раз.

Вернуться к началу
   
 Заголовок сообщения: Re: libGUI
СообщениеДобавлено: Пт сен 18, 2009 11:19 am 
andrew_programmer
Цитата:
Не всё так просто. Контролы могут покрывать не всю площадь окна. Если не рисовать фон, то окно окажется "дырявым". В окне вообще может быть только 2-3 контрола. Один контрол выводит сообщение пользователю, а остальные предлагают выбрать варианты действий.
Поэтому нужно отключать рисование фона под контролами, но при этом библиотека должна сама вычислять "дыры"(если они есть) и заполнять их цветом фона. Этот алгоритм пока ещё не реализован, поэтому фон под контролами отрисовываеться.

Это уже забота программиста приложения, всех вариантов заранее не предусмотришь - есть дырка вызывай 13 функцию и заливай, или вызывай 65 и заливай скином.
Цитата:
У меня ScrollBar так и рисуется. И ProgressBar также рисовался, только текст поверх него мигал, вот я и ввёл буферизацию. К тому же если выводить текст на ProgressBar-е масштабируемым шрифтом, то нужно производить сглаживание геометрических примитивов, чтобы шрифт казался ровным и гладким. Без буферизации изображения ScrollBar-а этого не сделать. Так что я одним решением избавился сразу от двух проблем.

Абсолютно не понял причем тут скроллбар применительно к тексту? На нем то текст не рисуется.
Цитата:
Если количество этих дыр велико, то нужно будет рисовать множество прямоугольников на экране, что потребует немалой загрузки процессора. Лучше уж рисовать в буфере, тем более, что у меня буферы динамические. То есть после использования(после вывода на экран) он освобождается, а не остаётся "висеть" в памяти занимая её.

Но согласись должна быть соблюдена золотая середина. Если можно обойтись без буфера (пусть даже динамически выделяемого), то почему бы и не обойтись. В BoxLib только один элемент использует буфер это MenuBar, остальные отрисовываются без взсяких буферов. Согласен, что твой прогресбар с надписью требует буферизации, но скроллбар то можно и без буфера. :-)


Вернуться к началу
   
 Заголовок сообщения: Re: libGUI
СообщениеДобавлено: Пт сен 18, 2009 11:22 am 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Пн ноя 28, 2005 8:00 pm
Сообщения: 1601
andrew_programmer писал(а):
Не всё так просто. Контролы могут покрывать не всю площадь окна. Если не рисовать фон, то окно окажется "дырявым". В окне вообще может быть только 2-3 контрола. Один контрол выводит сообщение пользователю, а остальные предлагают выбрать варианты действий.
Поэтому нужно отключать рисование фона под контролами, но при этом библиотека должна сама вычислять "дыры"(если они есть) и заполнять их цветом фона. Этот алгоритм пока ещё не реализован, поэтому фон под контролами отрисовываеться.

По-хорошему, контролы должны быть дочерними окнами, и за тем, чтобы отрисовка фона в основном окне их не затрагивала, должен следить оконный менеджер (как сейчас он отслеживает, что отрисовка не трогает соседние окна).

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


Вернуться к началу
 Заголовок сообщения: Re: libGUI
СообщениеДобавлено: Пт сен 18, 2009 11:24 am 
Не в сети
Аватара пользователя

Зарегистрирован: Чт мар 01, 2007 7:57 pm
Сообщения: 834
Mario, что плохого в возможности менять темы оформления? GTK и QT давно умеют, и вопреки этому всё-таки работают :)

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


Вернуться к началу
 Заголовок сообщения: Re: libGUI
СообщениеДобавлено: Пт сен 18, 2009 11:30 am 
Ну, дык я и говрю - если автору не лень будет отлаживать это дело то хорошо, а если будет написано исключительно ради красоты и плевать на стабильность. производительность и потребление памяти, то печально будет.


Вернуться к началу
   
 Заголовок сообщения: Re: libGUI
СообщениеДобавлено: Пт сен 18, 2009 11:34 am 
Не в сети
Аватара пользователя

Зарегистрирован: Чт мар 01, 2007 7:57 pm
Сообщения: 834
В данном случае радует серьёзное отношение автора к делу. Так что сделает, скорее всего, хорошо))
А в идеале хорошо бы для Колибри вообще новую графическую оболочку...

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


Вернуться к началу
 Заголовок сообщения: Re: libGUI
СообщениеДобавлено: Пт сен 18, 2009 1:16 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Чт май 19, 2005 4:43 pm
Сообщения: 896
Цитата:
Согласен, что твой прогресбар с надписью требует буферизации, но скроллбар то можно и без буфера. :-)


Он и рисуется без буфера. Я имел ввиду, что рисуется он на экране без всяких лишних перерисовок. При первичной отрисовке рисуется весь контрол. Потом рисуются только меняющиеся части. То есть полоса до ползунка с одной стороны, ползунок и полоса после ползунка.

Цитата:
По-хорошему, контролы должны быть дочерними окнами, и за тем, чтобы отрисовка фона в основном окне их не затрагивала, должен следить оконный менеджер (как сейчас он отслеживает, что отрисовка не трогает соседние окна).


Только не при том оконном менеджере, который сейчас есть в Колибри. Он восстанавливает фон под окном полной перерисовкой всех нижележащих окон(хоть и не затрагивая перекрывающиеся области). Проведите эксперимент. Запустите, например, файловый менеджер. Поверх него поместите окно Tinypad-а. А потом быстро походите по его менюшкам. В результате увидите мигания при перерисовке окон, расположенных под меню. И это на современном компьютере. Я когда проделал это на старом, то наблюдал крайне неприятное слайд-шоу. Из-за примитивного метода восстановления фона под окнами, возникают мигания при перерисовке и сами меню выбираются медленно.
В windows и linux мы не наблюдаем миганий и тормозов. Незнаю насчёт windows, но в linux для отрисовки исползуется буферизация. Оконный менеджер Kolibri позволяет экономить память, но при этом возникают проблемы со скоростью работы и качеством перерисовки. Как говорят ,"палка о двух концах". Хочешь экономить память, рисуй без буфера, но с мерцаниями, хочеш мез мерцаний - используй буффер. Кстати, в VESA курсор нужно рисовать не напрямую на экране, а в буфере, накладывая его изображение на часть скопированного в память изображения фона. И выводить наложенный курсор на экран. Так и делает X-сервер. Потому там курсор в VESA и не мигает.

_________________
KolibriOS-перспективная ос!
Kolibri is best operation system in the world!


Вернуться к началу
 Заголовок сообщения: Re: libGUI
СообщениеДобавлено: Пт сен 18, 2009 1:23 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Чт май 19, 2005 4:43 pm
Сообщения: 896
Атауальпа
Цитата:
А в идеале хорошо бы для Колибри вообще новую графическую оболочку...


Термин "Графическая оболочка" используется, если рисованием графики и окон в системе руководит процесс, работающий в user-mode, а не ядро операционной системы. В KolibrOS отрисовкой графичиских объектов и управлением окнами занимается ядро операционной системы. То есть графика встроена в ядро и никакой оболочки нет.

_________________
KolibriOS-перспективная ос!

Kolibri is best operation system in the world!


Вернуться к началу
 Заголовок сообщения: Re: libGUI
СообщениеДобавлено: Пт сен 18, 2009 6:51 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн апр 16, 2007 6:38 pm
Сообщения: 1222
"То есть графика встроена в ядро и никакой оболочки нет." то что нет никакой оболочки, не значит что нельзя создать новую (она сама по себе будет новой), так что в словах Атауальпы никакой ошибки нет, и я к ним присоединяюсь)

_________________
И мы уже давно не пешки,
Мы пули, мы орлы, и решки!
Война ютит бинарный код,
Умри, или иди вперед!


Вернуться к началу
 Заголовок сообщения: Re: libGUI
СообщениеДобавлено: Сб сен 19, 2009 1:22 pm 
andrew_programmer
У меня конструктивное предложение - возможно имеет смысл переместить libGUI в папку libraries, которая находится рядом. Все таки логичней соблюдать некоторые правила, чтобы уменьшить рост энтропии. :mrgreen:


Вернуться к началу
   
 Заголовок сообщения: Re: libGUI
СообщениеДобавлено: Сб сен 19, 2009 1:27 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Чт май 19, 2005 4:43 pm
Сообщения: 896
Я о том же самом подумал. Думаю буду вносить новые изменения в библиотеку и перемещу её в папку libraries. Делать перенос в папку отдельной ревизией что-то не хочется.

_________________
KolibriOS-перспективная ос!

Kolibri is best operation system in the world!


Вернуться к началу
 Заголовок сообщения: Re: libGUI
СообщениеДобавлено: Сб сен 19, 2009 7:36 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пт июн 27, 2008 3:22 pm
Сообщения: 974
Хорошая работа. Main впечатлила.

Цитата:
Почему KlbInWin не может загрузить библиотеку - я не знаю.


Странно библиотека прерасно грузится KlbInWin, надо только положить её в директорию lib, в той папке которую ты выделил под рамдиск.


Вернуться к началу
 Заголовок сообщения: Re: libGUI
СообщениеДобавлено: Сб сен 19, 2009 8:46 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Чт май 19, 2005 4:43 pm
Сообщения: 896
Цитата:
Странно библиотека прерасно грузится KlbInWin, надо только положить её в директорию lib, в той папке которую ты выделил под рамдиск.


У меня не работает. Наверное из-за Windows. Она у меня ужасно глючит. Каждый второй запуск приводит к внезапному вылетанию в перезагрузку. А переустановить windows нельзя иначе у меня grub затрёться и я не смогу грузить linux.

_________________
KolibriOS-перспективная ос!

Kolibri is best operation system in the world!


Вернуться к началу
 Заголовок сообщения: Re: libGUI
СообщениеДобавлено: Вс сен 20, 2009 4:41 am 
Не в сети
Designer
Аватара пользователя

Зарегистрирован: Чт янв 25, 2007 3:33 pm
Сообщения: 4227
У меня тоже не работало (я перешёл с Windows на MacOS).

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


Вернуться к началу
 Заголовок сообщения: Re: libGUI
СообщениеДобавлено: Вс сен 20, 2009 7:45 am 
Не в сети
Mentor
Аватара пользователя

Зарегистрирован: Вт янв 15, 2008 11:27 am
Сообщения: 750
Оффтопик:
andrew_programmer писал(а):
А переустановить windows нельзя иначе у меня grub затрёться и я не смогу грузить linux.
это миф - GRUB можно восстановить. лучше, конечно сделать загрузочную дискету (диск) заранее, но можно и потом (просто мороки больше). я дважды восстанавливал GRUB. самый простой случай, когда у меня была Mandriva - вставить загрузочный диск и выбрать восстановление загрузчика. второй случай, когда я подрос, поставил Slackware, и после переустановки винды пришлось записывать дискету с GRUB и восстанавливать загрузчик с помощью команд.


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 240 сообщений ]  На страницу Пред. 112 13 14 15 16 След.

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB