![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| yOhoOo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 8.11.2007 Репутация: нет Всего: нет |
Итак кул прогеры, обращаюсь к ващей мудрости, дабы отыскать совет.
Хотел реализовать хорошую графическую оболочку под ДОС для своей программы (Вычилительные методы, погрешности, распределения, теория вероятности и все такое, довольно обьемная фигня), перечитал разные статьи, и чем больше читал тем больше вопросов. (!) Я использую компилятор Borland C++ v3.1(Таковы условия задания) 1) Пытался использовать, библиотеки SVGA***.bgi (т.е SVGA256-SVGA24bit), для реализации 1024*768*(тот же диапазон), но в итоге получил только лишь мигающую лампочку на мониторе(ну не работает моя видеокарта в этих режимах). Зато отлично себя чувствует во всех вышеописанных но в разрешении 640*480. Пы тался использовать как альтернативу VESA, но тут все тоже самое. По сути ведь готовые библиотечки описывают те же самые действия? Подскажите пожалуйста можно ли тут что нибудь сделать вообще или только и остается довольствоватся 640*480? Примечание: Думал может библиотечки кривые - сходил потестил в универ(в комп. классе), машины не очень новые и видяхи держали все разрешения абсолютно во всех режимах. Компилятор тот же. 2) Теперь вопрос о формировании цвета. При инициализации какого - либо графического режима допустим 256 цветов. Каким образом там формируется палитра? Т.е. при выводе по очереди каждого цвета от 0 до 255 имеем вначале какие-то случайные цвета, затем градиент серого цвета, затем чередование: синий, фиолетовый , красный, желтый зеленый... и снова чередование того-же но в других оттенках. Почему именно так? Почему не обьединяют Градиентами: вначале красный например всех оттенков потом зел и т.д.? Как будет выглядеть палитра если я инициализирую наприммер 65000(с чем то там) цветов? Будет ли она расположенна в другом порядке? Теперь например я например хоче переделать палитру, под нужную мне(возмем 256цветов) И функцией SetRGBpalette(i,r,g,b) в цикле начнем ее перересовывать. Итак, в каких диапазонах могут быть коэфициэнты R, G, B? Как диапазоны связанны с максимальным количеством цветов? Как задается количество серого(яркость) ? И последнее: Макс кол-во цветов - это количество которое одновременно хранится видеокартой? Ведь даже в 16 цветном режиме я могу переопределить палитру в 16 красивых оттенков(по сравнению со стандартной палитрой) ------------------------------------------------------------------------------------------- Я понимаю что вопросов много и они достаточно обьемные, хотелось бы конечно чтобы на все из них был дан ответ, ибо нечто не воспринимается так легко как доступный человеческий язык, а не сухая литература написанная научным языком. Короче если лень писать кинте ссылочки по вопросам, буду рад любой информации, заранее благодарен....))) |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 1 Всего: 207 |
yOhoOo,
вы ошиблись разделом, это явно не общие вопросы по С++ -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| mes |
|
||||||||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 1 Всего: 250 |
есть еше режим 800х600 Первые шестнадцать перешли по наследству от EGA, остальные ммм..так придумали
при 16битном режиме значение цвета рассматривается не как индекс в палитре, а как градиент. То есть палитры не будет.. а значение разбивается по несколько (5,6) бит на цвет. Но это в видеопамяти.. а задавать значение нужно в зависимости от того каким образом.. если через "посредника"(библиотеку) - то надо смотреть его спецификацию
в зависимости какую библиотеку исполэуешь .. В некоторых дробь от 1 .. в некоторых от 0 до 255 в других в платформозависимой форме
например если у карты всего мег памяти то при разрешении 800х600 может показать 65536 цветов (800*600*2 [16bit] =960 000 < 1000 000) , а при режиме 1024х768 больше 256 цветов не возможно отобразить (1024*768*2 [16bit] =1 572 864 > 1000 000) Tо есть зависит не только от возможности карты воспроизвести цвет, но и от возможности сохранить кадр в таком режиме. |
||||||||
|
|||||||||
| yOhoOo |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 8.11.2007 Репутация: нет Всего: нет |
Спасибо за то что хоть кто-то ответил)
Итак:
Блин естественно я его пробывал инициализировать, я имел в виду что моя видяха не держит более чем 640*480 странно это(у меня Жи Форс Ти 4200) т.е. 128 мегабайт которые ну просто обязаны вместить все эти режимы. Я думаю это связанно с урезанной поддержкой VESA стандартов, как тупиковой ветви эволюции))
Блин по наследству от EGA! Вот я тупень, как не доперло то сразу...) Ну а остальные - должна быть какая - то формула...
Хорошо, а если напрямую через регистры? И если через регистры, то будут ли работать стандартные графические функции? ЗЫ: Остальное усвоил,большое спасибо) |
||||||
|
|||||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 1 Всего: 250 |
А виндоуз у тебя загружается ? Она позволяет ставить другие разрешения ? если да, то проблема с драйверами.
Для написания оболочки, тебе нужна будет графическая библиотека. Или ты собрался писать свою? |
|||
|
||||
| yOhoOo |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 8.11.2007 Репутация: нет Всего: нет |
Виндоз канечно держит большие разрешения.
Ну если работать напрямую с регистрами при помощи асм кода, и не загружать стандартные или нестандартные bgi драйвера, то функции graphics.h - бысполезны? Т. е. не станут работать, следовательно придется похоже писать свои... Я уже прочел массу статей, где критикуют стандартные ф-ии и похоже склоняюсь к этому... |
||||
|
|||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |