Board.KolibriOS.org

Official KolibriOS board
It is currently Sat May 25, 2019 9:10 pm

All times are UTC+03:00




Post new topic  Reply to topic  [ 44 posts ]  Go to page 1 2 3 Next
Author Message
PostPosted: Mon Sep 26, 2011 11:43 am 
Offline

Joined: Mon Sep 26, 2011 11:25 am
Posts: 46
Всем привет! Блуждая в инете набрёл на ЭТО: http://dz.livejournal.com/675037.html#comments
Попытка сделать в Фантоме поддержку исполняемого формата и API Колибри. 8)
Ваше мнение? :)
(на картинке приложение Arcanoid (Kolibri OS), которое работает в ОС Фантом :roll: )


Attachments:
0_52c84_812df085_L.png
0_52c84_812df085_L.png [ 139.84 KiB | Viewed 6056 times ]


Last edited by some_man on Mon Sep 26, 2011 1:01 pm, edited 1 time in total.
Top
   
PostPosted: Mon Sep 26, 2011 12:06 pm 
Offline
User avatar

Joined: Tue Aug 25, 2009 4:45 pm
Posts: 794
Это он после Chaos Constructions сделал :D


Top
   
PostPosted: Mon Sep 26, 2011 12:09 pm 
Offline

Joined: Mon Sep 24, 2007 11:11 am
Posts: 2814
Уу, до полноценного запуска приложений Колибри еще далеко. Хотя есть KlbrInWin - в Windows более-менее работало когда-то. Видели мы и Miraculix. Арканоид использует далеко не все возможности API.
Предрекаю сложности с библиотеками и низкоуровневой работой, а так же infinity. А вообще прикольно, я не против - пусть себе Фантом запускает программы Колибри.


Top
   
PostPosted: Mon Sep 26, 2011 12:34 pm 
Offline
User avatar

Joined: Tue Aug 25, 2009 4:45 pm
Posts: 794
Просит помощи:
Quote:
есть вопросы по реализации. Если это читает кто-то из команды Колибри - отзовитесь, пожалуйста. Из документации не вполне ясна семантика некоторых полей заголовка исполняемого файла, и нигде не могу найти описания алгоритма (а лучше - кода на си) распаковки.


Top
   
PostPosted: Mon Sep 26, 2011 12:52 pm 
Offline

Joined: Mon Sep 24, 2007 11:11 am
Posts: 2814
Пытался ответить, но у меня нет учетки на LJ, через другие сервисы комментировать lj не дает. Так что не судьба.


Top
   
PostPosted: Mon Sep 26, 2011 1:51 pm 
Offline
Kernel Developer
User avatar

Joined: Fri Aug 14, 2009 1:46 am
Posts: 1328
Кинул ответ.
Все-таки человек все воскресенье посвятил Колибри - надо оценить :)
Другой вопрос - а нужен ли Фантом нам? Какие бонусы от симбиоза двух (прямо скажем) малоизвестных OCей?
Насчет того, что он собирается портировать Фантом на АРМ вместе с эмулятором API Колибри -- улыбнуло.


Top
   
PostPosted: Mon Sep 26, 2011 3:31 pm 
Offline

Joined: Mon Sep 26, 2011 3:01 pm
Posts: 33
Привет.

Вопросы и предложения:

1. загрузка приложения: можно ли проигнорировать адрес стека и сделать стек просто выше, чем конец данных? Каков объём буферов имени программы и командой строки? Что туда пишется? Значит ли что-то номер версии формата в заголовке программы? Где-то проскакивала информация о том, что один из указателей заголовка смотрит на иконку приложения. Верно ли? Какой? Что с форматом иконки?

2. видео через gs: - кто-то это реально использует, или фича неактуальна? (и почему 24-битный, а не aligned 32-bit цвет? - риторический вопрос)

3. думаю, полезно задокументировать фичу с отрицательными позициями окна (== отсчёт от правого края)

4. у функции считывания информации о треде есть в возвращаемой структуре третье поле, которое номер слота процесса, которому принадлежит окно номер ECX. Скажите мне, что это реально не используется? :)

5. Какую версию ядра мне лучше отдавать? Сейчас 0.7.7.0, так как я ориентируюсь на него.

6. Какой сетевой (tcp/ip) API реально надо эмулировать - тот, что в документации, или новый?

7. загружаемые драйвера я пока не трогал, не нашёл документации. где почитать?

8. Почему 12.1 (начать перерисовку) убивает баттоны? За что??! :) Где вообще почитать про логику работы графики - обязано ли приложение звать 12.1 и 12.2? Если нет - зачем они?

9. В чём считается загрузка CPU - каково максимальное значение (числа тиков)?

10. не хочет ли сообщество стандартизовать коды возврата и внедрить их во все вызовы? Ноль в EAX вернуть несложно...


Top
   
PostPosted: Mon Sep 26, 2011 4:04 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
1)256 байт для командной строки и 1024 для полного пути. I_ICON это путь к программе.
Номер формата имеет значение. Структуры заголовков есть в taskman.inc
2)24 - устаревшая документация, формат соответствует формату первичной поверхности.. Фича тоже устарела. Есть прямой доступ к видеопямяти по адресу LFB_BASE.


Top
   
 Post subject: Икона
PostPosted: Mon Sep 26, 2011 4:13 pm 
Offline

Joined: Mon Sep 26, 2011 3:01 pm
Posts: 33
Спасибо.
А формат icon?


Top
   
PostPosted: Mon Sep 26, 2011 4:21 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Иконки на рабочем столе ? Они сами себя рисуют.


Top
   
PostPosted: Mon Sep 26, 2011 4:41 pm 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5047
>>8. Почему 12.1 (начать перерисовку) убивает баттоны? За что??! Где вообще почитать про логику работы графики - обязано ли приложение звать 12.1 и 12.2? Если нет - зачем они?

Если нет 12.2 окно не будет отображаться. Обязательно 12.1 потом окно потом 12.2, потом может идти отрисовка всего чего угодно, или же 12.2 в конце. Пока что 12.1 и 12.2 условности и толку в них нет никакого - это на будущее когда оконная подсистема станет круче.

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


Top
   
 Post subject: Re: Икона
PostPosted: Mon Sep 26, 2011 4:50 pm 
Offline

Joined: Mon Sep 24, 2007 11:11 am
Posts: 2814
dzavalishin wrote:
Спасибо.
А формат icon?

I_ICON - фактически рабочая папка программы, как я понимаю.


Top
   
PostPosted: Mon Sep 26, 2011 5:34 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
I_ICON - argv[0], рабочий каталог задаётся другой функцией.


Top
   
PostPosted: Mon Sep 26, 2011 5:39 pm 
Offline

Joined: Mon Sep 26, 2011 3:01 pm
Posts: 33
Правильно ли я понимаю, что вызов 12.2 не обязателен? Я в настоящее время по нему делаю апдейт окна в видеопамять, но по факту часть программ его не зовут.

Опять же - действительно ли 12.1 убивает кнопки (8), и за что она это делает? В чём идея?


Top
   
PostPosted: Mon Sep 26, 2011 6:11 pm 
Offline

Joined: Mon Sep 24, 2007 11:11 am
Posts: 2814
AFAIK 12.2 как раз-таки обязателен.
12.1 действительно убивает все кнопки.
Фантазии на тему "зачем":
Spoiler: Show
В системе нет процедуры "изменить параметры кнопки". Создание множества кнопок с одним id приведет к фактическому созданию множества кнопок с одним id. Возможно, задумка автора (а я уверен, это еще со времент Menuet) была в том, чтобы быстро удалить все кнопки.
Другой вариант. Есть только окно (по сути канва, на которой можно рисовать и писать текст) и кнопки. Функция 12.1 очищает холст перед перерисовкой - вместе со всеми элементами. Соответственно все кнопки требуется перерисовать. Хрен его знает, в общем, зачем все сделано именно так.
Третий вариант. Изображение в окнах не кэшируется. Соответственно если окно ушло на задний план, а затем вышло на передний - его целиком нужно перерисовать, вместе с кнопками.


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