URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 4995
[ Назад ]

Исходное сообщение
"Как сделать графический загрузчик"

Отправлено greenetc , 02-Янв-06 21:09 
Может не в тот раздел, но рядом вроде.
Создал приложение встраиваемое.При запуске системы запускается только это приложение.Хотелось бы сделать графический загрузчик в виде ProgressBar, вместо текстового процесса загрузки. Подскажите как это сделать.

Содержание

Сообщения в этом обсуждении
"Как сделать графический загрузчик"
Отправлено Дмитрий Ю. Карпов , 03-Янв-06 14:49 
Не было у бабы забот, да купила она себе порося! Ну, начнём с того, что писюковая совместимость - полный отстой, и сейчас я всех в этом убедю... или убеждю...

Итак, все современные видеоадаптеры могут работать в нескольких стандартных видеорежимах:
- несколько текстовых, начиная от 40x25 (стандартным считается 80x25);
- CGA: 640x200, два цвета; 320x200, четыре цвета;
- EGA: 640x350, шестнадцать цветов (битовые слои);
- VGA: 640x480, шестнадцать цветов (битовые слои); 320x200, 256 цветов.
Плюс к тому у каждой видеокарты (ну, кроме самых древних типа CL-5421) есть собственные режимы; при том, что у разных видеокарт могут совпадать разрешение&цветность, для них нужны разные драйверы, т.е. не получится заменить видеокарту на аналогичную др.производителя и надеяться, что удастся работать без изменений в софте.

Компьютерные игры под DOS работали с графикой в тех же условиях, что и твой загрузчик, т.к. сам DOS не имел функций для работы с графикой, так что приходилось либо пользоваться средствами VideoBIOS, либо обращаться напрямую к видеопамяти.

Казалось бы, если на видеокарте есть ПЗУ, то в это ПЗУ надо залить драйвер, который будет принимать от программ стандартные запросы (т.е одинаковые для всех видеокарт) и реализовывать их в зависимости от конкретных особенностей видеокарты (как это делают BIOS'ы на контроллерах жёстких дисков, особенно SCSI). Но VideoBIOS имеет всего две функции: "установить видеорежим" и "поставить точку в заданном месте". Но если рисовать рисунок поточечно, то при каждом вызове VideoBIOS будет проверять, не вышла ли точка за границы экрана, а это медленно; тогда как при рисовании отрезка достаточно проверить, не выходят ли за границу экрана его концы. Впрочем, для тебя это м.б. приемлимо.

Другой вариант - прямое обращение к видеопамяти. Даже текстовые программы типа Norton Commander обращаются напрямую (я читал, что первой это сделала электронная таблица Lotus "1-2-3"). Но проблема в том, что все видеорежимы работают через "окно" размером в один сегмент (64 KB), тогда как уже EGA-адаптеры несли на себе вдвое больше; поэтому для адресации видеопамяти используются такие [censored] методы, что [censored], [censored] и [censored]!

И есть ещё какой-то метод работы "VESA", который я не понял. В компьютерных журналах иногдя появляются статьи на тему "программирование видеоадаптеров через VESA", которые я обычно не читаю.

Короче говоря, я советую читать следующие материалы:
- "TechHelp" (это электронный справочник под DOS, ищи в Internet);
- книги типа "Программирование видеоадаптеров" (такие древние, что в Internet их может не быть, но попробуй);
- статьи на тему "VESA";
(в кавычках пиведены ключевые слова для поисковых машин). Ну а напоследок пожелаю тебе удачи и терпения - они тебе понадобится.


"Как сделать графический загрузчик"
Отправлено DeadMustdie , 03-Янв-06 19:02 
>тебе удачи и терпения - они тебе понадобится.

Резюме: овчинкус выделкуса не стоит.


"Как сделать графический загрузчик"
Отправлено greenetc , 04-Янв-06 15:53 
>Не было у бабы забот, да купила она себе порося! Ну, начнём
>с того, что писюковая совместимость - полный отстой, и сейчас я
>всех в этом убедю... или убеждю...
>
>Итак, все современные видеоадаптеры могут работать в нескольких стандартных видеорежимах:
>- несколько текстовых, начиная от 40x25 (стандартным считается 80x25);
>- CGA: 640x200, два цвета; 320x200, четыре цвета;
>- EGA: 640x350, шестнадцать цветов (битовые слои);
>- VGA: 640x480, шестнадцать цветов (битовые слои); 320x200, 256 цветов.
>Плюс к тому у каждой видеокарты (ну, кроме самых древних типа CL-5421)
>есть собственные режимы; при том, что у разных видеокарт могут совпадать
>разрешение&цветность, для них нужны разные драйверы, т.е. не получится заменить видеокарту
>на аналогичную др.производителя и надеяться, что удастся работать без изменений в
>софте.
>
>Компьютерные игры под DOS работали с графикой в тех же условиях, что
>и твой загрузчик, т.к. сам DOS не имел функций для работы
>с графикой, так что приходилось либо пользоваться средствами VideoBIOS, либо обращаться
>напрямую к видеопамяти.
>
>Казалось бы, если на видеокарте есть ПЗУ, то в это ПЗУ надо
>залить драйвер, который будет принимать от программ стандартные запросы (т.е одинаковые
>для всех видеокарт) и реализовывать их в зависимости от конкретных особенностей
>видеокарты (как это делают BIOS'ы на контроллерах жёстких дисков, особенно SCSI).
>Но VideoBIOS имеет всего две функции: "установить видеорежим" и "поставить точку
>в заданном месте". Но если рисовать рисунок поточечно, то при каждом
>вызове VideoBIOS будет проверять, не вышла ли точка за границы экрана,
>а это медленно; тогда как при рисовании отрезка достаточно проверить, не
>выходят ли за границу экрана его концы. Впрочем, для тебя это
>м.б. приемлимо.
>
>Другой вариант - прямое обращение к видеопамяти. Даже текстовые программы типа Norton
>Commander обращаются напрямую (я читал, что первой это сделала электронная таблица
>Lotus "1-2-3"). Но проблема в том, что все видеорежимы работают через
>"окно" размером в один сегмент (64 KB), тогда как уже EGA-адаптеры
>несли на себе вдвое больше; поэтому для адресации видеопамяти используются такие
>[censored] методы, что [censored], [censored] и [censored]!
>
>И есть ещё какой-то метод работы "VESA", который я не понял. В
>компьютерных журналах иногдя появляются статьи на тему "программирование видеоадаптеров через VESA",
>которые я обычно не читаю.
>
>Короче говоря, я советую читать следующие материалы:
>- "TechHelp" (это электронный справочник под DOS, ищи в Internet);
>- книги типа "Программирование видеоадаптеров" (такие древние, что в Internet их может
>не быть, но попробуй);
>- статьи на тему "VESA";
>(в кавычках пиведены ключевые слова для поисковых машин). Ну а напоследок пожелаю
>тебе удачи и терпения - они тебе понадобится.


Неужели у Fedora Core 4 всё так сложно сделано , или в проекте MoveX2 ?


"Как сделать графический загрузчик"
Отправлено Андрей , 04-Янв-06 18:45 
>Неужели у Fedora Core 4 всё так сложно сделано , или в
>проекте MoveX2 ?

Fedora Core и Movix используют ядро Linux и пользуются всеми благами предоставляемыми ядром в том числе и bootsplash.
Вы написали "При запуске системы запускается только это приложение.", что для меня выглядит, как будто вы собираетесь загружать своё приложение при включении компьютера вместо операционной системы, то есть вам надо писать всё самому в том числе и графический загрузчик.
Именно эту ситуацию, на мой взгляд, и описал Дмитрий Ю. Карпов.


"Как сделать графический загрузчик"
Отправлено greenetc , 05-Янв-06 13:03 
>>Неужели у Fedora Core 4 всё так сложно сделано , или в
>>проекте MoveX2 ?
>
>Fedora Core и Movix используют ядро Linux и пользуются всеми благами предоставляемыми
>ядром в том числе и bootsplash.
>Вы написали "При запуске системы запускается только это приложение.", что для меня
>выглядит, как будто вы собираетесь загружать своё приложение при включении компьютера
>вместо операционной системы, то есть вам надо писать всё самому в
>том числе и графический загрузчик.
>Именно эту ситуацию, на мой взгляд, и описал Дмитрий Ю. Карпов.


прошу прощения ... видимо я двусмысленно задал вопрос.
Меня интересует именно пользование всеми благами предоставляемыми ядром в том числе и bootsplash.


"Как сделать графический загрузчик"
Отправлено Андрей , 05-Янв-06 19:51 
>прошу прощения ... видимо я двусмысленно задал вопрос.
>Меня интересует именно пользование всеми благами предоставляемыми ядром в том числе и
>bootsplash.

я использую gentoo linux и поэтому знаю пару линков, как сделать графический загрузчик на gentoo
http://gentoo-wiki.com/HOWTO_fbsplash
http://gentoo-wiki.com/TIP_Design_your_own_Framebuffer_Splash

google может подсказать больше еслы вы его спросите


"Как сделать графический загрузчик"
Отправлено greenetc , 05-Янв-06 20:25 
>>прошу прощения ... видимо я двусмысленно задал вопрос.
>>Меня интересует именно пользование всеми благами предоставляемыми ядром в том числе и
>>bootsplash.
>
>я использую gentoo linux и поэтому знаю пару линков, как сделать графический
>загрузчик на gentoo
>http://gentoo-wiki.com/HOWTO_fbsplash
>http://gentoo-wiki.com/TIP_Design_your_own_Framebuffer_Splash
>
>google может подсказать больше еслы вы его спросите


спасибо. БУду пробывать .


"Как сделать графический загрузчик"
Отправлено scaldov , 20-Сен-06 15:08 
>
>Казалось бы, если на видеокарте есть ПЗУ, то в это ПЗУ надо
>залить драйвер, который будет принимать от программ стандартные запросы (т.е одинаковые
>для всех видеокарт) и реализовывать их в зависимости от конкретных особенностей
>видеокарты (как это делают BIOS'ы на контроллерах жёстких дисков, особенно SCSI).
>Но VideoBIOS имеет всего две функции: "установить видеорежим" и "поставить точку
>в заданном месте". Но если рисовать рисунок поточечно, то при каждом
>вызове VideoBIOS будет проверять, не вышла ли точка за границы экрана,
>а это медленно; тогда как при рисовании отрезка достаточно проверить, не
>выходят ли за границу экрана его концы. Впрочем, для тебя это
>м.б. приемлимо.
>

Етить!!! Профанация какая-то. В VESA есть функция, которая создаёт структуру указателей на стандартные ф-ии ускореной 2D и 3D графики как для реального так и для защищенного режимов. В линуксе openGL на интеловских карточках именно так и работает.