Может не в тот раздел, но рядом вроде.
Создал приложение встраиваемое.При запуске системы запускается только это приложение.Хотелось бы сделать графический загрузчик в виде ProgressBar, вместо текстового процесса загрузки. Подскажите как это сделать.
Не было у бабы забот, да купила она себе порося! Ну, начнём с того, что писюковая совместимость - полный отстой, и сейчас я всех в этом убедю... или убеждю...Итак, все современные видеоадаптеры могут работать в нескольких стандартных видеорежимах:
- несколько текстовых, начиная от 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";
(в кавычках пиведены ключевые слова для поисковых машин). Ну а напоследок пожелаю тебе удачи и терпения - они тебе понадобится.
>тебе удачи и терпения - они тебе понадобится.Резюме: овчинкус выделкуса не стоит.
>Не было у бабы забот, да купила она себе порося! Ну, начнём
>с того, что писюковая совместимость - полный отстой, и сейчас я
>всех в этом убедю... или убеждю...
>
>Итак, все современные видеоадаптеры могут работать в нескольких стандартных видеорежимах:
>- несколько текстовых, начиная от 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 ?
>Неужели у Fedora Core 4 всё так сложно сделано , или в
>проекте MoveX2 ?Fedora Core и Movix используют ядро Linux и пользуются всеми благами предоставляемыми ядром в том числе и bootsplash.
Вы написали "При запуске системы запускается только это приложение.", что для меня выглядит, как будто вы собираетесь загружать своё приложение при включении компьютера вместо операционной системы, то есть вам надо писать всё самому в том числе и графический загрузчик.
Именно эту ситуацию, на мой взгляд, и описал Дмитрий Ю. Карпов.
>>Неужели у Fedora Core 4 всё так сложно сделано , или в
>>проекте MoveX2 ?
>
>Fedora Core и Movix используют ядро Linux и пользуются всеми благами предоставляемыми
>ядром в том числе и bootsplash.
>Вы написали "При запуске системы запускается только это приложение.", что для меня
>выглядит, как будто вы собираетесь загружать своё приложение при включении компьютера
>вместо операционной системы, то есть вам надо писать всё самому в
>том числе и графический загрузчик.
>Именно эту ситуацию, на мой взгляд, и описал Дмитрий Ю. Карпов.
прошу прощения ... видимо я двусмысленно задал вопрос.
Меня интересует именно пользование всеми благами предоставляемыми ядром в том числе и bootsplash.
>прошу прощения ... видимо я двусмысленно задал вопрос.
>Меня интересует именно пользование всеми благами предоставляемыми ядром в том числе и
>bootsplash.я использую gentoo linux и поэтому знаю пару линков, как сделать графический загрузчик на gentoo
http://gentoo-wiki.com/HOWTO_fbsplash
http://gentoo-wiki.com/TIP_Design_your_own_Framebuffer_Splashgoogle может подсказать больше еслы вы его спросите
>>прошу прощения ... видимо я двусмысленно задал вопрос.
>>Меня интересует именно пользование всеми благами предоставляемыми ядром в том числе и
>>bootsplash.
>
>я использую gentoo linux и поэтому знаю пару линков, как сделать графический
>загрузчик на gentoo
>http://gentoo-wiki.com/HOWTO_fbsplash
>http://gentoo-wiki.com/TIP_Design_your_own_Framebuffer_Splash
>
>google может подсказать больше еслы вы его спросите
спасибо. БУду пробывать .
>
>Казалось бы, если на видеокарте есть ПЗУ, то в это ПЗУ надо
>залить драйвер, который будет принимать от программ стандартные запросы (т.е одинаковые
>для всех видеокарт) и реализовывать их в зависимости от конкретных особенностей
>видеокарты (как это делают BIOS'ы на контроллерах жёстких дисков, особенно SCSI).
>Но VideoBIOS имеет всего две функции: "установить видеорежим" и "поставить точку
>в заданном месте". Но если рисовать рисунок поточечно, то при каждом
>вызове VideoBIOS будет проверять, не вышла ли точка за границы экрана,
>а это медленно; тогда как при рисовании отрезка достаточно проверить, не
>выходят ли за границу экрана его концы. Впрочем, для тебя это
>м.б. приемлимо.
>Етить!!! Профанация какая-то. В VESA есть функция, которая создаёт структуру указателей на стандартные ф-ии ускореной 2D и 3D графики как для реального так и для защищенного режимов. В линуксе openGL на интеловских карточках именно так и работает.