Программа, успешно работавшая на старых видеокартах, на моей и не только на моей выдаёт очень тёмную картинку.Изрядно помучавшись и проверив всё что только можно,пришёл к выводу, что скорее всего в современных АЦП видеокарт используется более 6 бит на 1 цвет.И от этого картинка с 6-ю битами палитры видется тёмной.Или может где-то есть дополнительная программная регулировка яркости к АЦП.. Может где-то в сети есть доки? В рунете всё минимум 3-х летней давности
Вообщето я могу ошибаться, но мне всегда казалось, что цвет задаётся не 6-ю, а 8-ю битами на соответствующий цвет.
а мона сорец в студию? если программирование идет в VGA режиме, цвета должны получаться верными, хоть там внутри 99 бит на цвет. если я пральнав понял речь ведь идет о палитровом режиме 256 цветофф?
kuks Если бы программистам надо было думать еще и об этом, то мы бы до сих пор работали в ДОС. Просто есть разные системы представления цветов : палитра 256 цветов, палитра 65535 цветов, 16-битный цвет ( две раскладки битов 6x5x5 - подробности не помню), 24-битный цвет (8х8х8) и 32-битный(24+альфа). Видимо просто неправильно загружается палитра 65535 цветов, т.е. не учитывается что регистры палитры "шире" теперь. Возможно проблема просто в использовании 16-битного режима - он наверное требует дополнительной настройки...
Всё нормально.Как бы растянул все значения палитры до 8 значащих бит и яркость с контрастностью появились.Теперь новые проблемы..Как я понимаю,в 32-х разрядном режиме можно выводить с помощью переключения страниц или через Линейный Кадровый Буфер.Так вот,ни с помощью стандартных прерываний,ни путём чтения скачаной документации- нигде не нашёл ни точки входа функции переключения страниц для 32-х разрядного режима ни адреса ЛКБ(видеокарта "Intel(R) 815") И смотрю по документации - там вроде как вообще по-другому предлагается выводить на экран
http://coop.chuvashia.ru/SanyaSoft/mgr/Articles/Bios/Vbe/VBE.htm В ВИН2000 все чуть-чуть сложнее - пока не удалось найти, как правильно использовать VESA 3.0
там вроде нельзя юзать ВЕСУ, потому что ты не можешь юзать функцию SetLDTEntries она доступна только для 16битных программ. в 32битных прогах под этим номером другой сискалл.
По стандарту VESA 3.0 надо использовать копию БИОС-а видеокарты. Вход там теперь 32-битный - вместо INT 10. Я нашел копию БИОС-а в своем WIN2000 , но квалификации не хватает, чтобы проверить. Все это описано в документе vbe3.pdf на vesa.org Правда без примеров и без тонкостей. Но ,например , в MagicTune вместо VESA используют porttalk :-(