|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
16.06.2012, 16:17 | #1 |
Пользователь
Регистрация: 10.06.2012
Сообщений: 22
|
Проблема с видеостраницами. VGA, VGAHi
Для решения проблемы решил использовать видеостраницы.
Но при переключении ( SetViualPage(1); ) отображается половина второй страницы, половина первой. В инете прочитал, что мод VGAHi имеет только одну видеостраницу. Т.е. использование видеостраниц в этом моде не возможно? Может я что-то не так делаю. Вот часть кода: Код:
Но страницы отображаются не верно (причём и 1 и 0). |
16.06.2012, 19:19 | #2 | |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
Цитата:
VGA имел 256 Кбайт видеопамяти. В режиме 640х480 при 16 цветах используется 640*480*4=1228800 бит или 153600 байт. Очевидно, в 262144 байта две такие страницы не помещаются. Если непременно нужны 2 видеостраницы, используйте либо 640х350 при 16 цветах или 640х480 с меньшим количеством цветов (2 или 4). Но, по-хорошему, подобный режим - тупиковая ветвь развития видеосистем, и о нем уже давно пора забыть. Да, а для динамичной графики 16-цветные режимы вообще категорически не подходят - очень медленные, т.к. при записи пикселей в видеопамять приходится регулярно переключать битовые плоскости через регистры. Последний раз редактировалось s-andriano; 16.06.2012 в 19:21. |
|
16.06.2012, 20:09 | #3 |
Пользователь
Регистрация: 10.06.2012
Сообщений: 22
|
Печально(
Придётся думать как обойтись без видеостраниц, т.к. 640Х480 необходимо. Спасибо за ответ |
16.06.2012, 20:24 | #4 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
И обязательно 16 цветов?
|
16.06.2012, 22:41 | #5 |
Пользователь
Регистрация: 10.06.2012
Сообщений: 22
|
|
16.06.2012, 22:55 | #6 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
4 цвета, если мне не изменяет память, бывают только в двух палитрах:
1. Голубой, малиновый, черный, белый. 2. Зеленый, красный, желтый (какой-то еще). Setcolor, естественно, от 0 до 3. Кроме того, есть режимы с 256 цветами, а также Hi- и TrueColor, где каждая компонента цвета кодируется непосредственно в пикселе. Есть, правда, некоторая проблема в том, что Майкрософт постепенно сворачивает поддержку DOS, и первыми "пали" как раз режимы, обеспечивающие максимальное качество изображения (наверное, чтобы пользователи побыстрее забывали DOS). В общем, в DOS все это работать будет, а в DOS-сессии Windows - под сомнением. Но от 16-цветных режимов в любом случае нужно уходить. Они уже канули в Лету и не следует пытаться их реанимировать. |
17.06.2012, 00:49 | #7 |
Пользователь
Регистрация: 10.06.2012
Сообщений: 22
|
Есть режим 640Х480Х256 ?
Это какой и как его выбрать? Т.е. в параметре процедуры SetColor может быть число от 0 до 255? Да. То, что Майкрософт сворачивают поддержку ДОС видно. |
17.06.2012, 09:48 | #8 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
1. Есть.
2. Согласно действующему стандарту VBE 2.0 за режимами НЕ закрепляется индивидуальных номеров. Чтобы узнать номер режима следует запросить у видеокарты количество поддерживаемых режимов, запросить информацию о каждом из режимов и выбрать подходящий. Но обычно производители придерживаются номеров, рекомендованных предыдущей версией стандарта VESA 1.4. 3. Что такое процедура SetColor? Откуда она берется? |
17.06.2012, 12:06 | #9 |
Пользователь
Регистрация: 10.06.2012
Сообщений: 22
|
SetColor(Color:word); процедура модуля Graph. Устанавливает цвет выводимого в граф. режиме текста, линий, фигур и всего, что рисуется.
Просто не пойму как управлять этими 256 цветами. Так же как и при 16? |
17.06.2012, 17:11 | #10 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
Да, в случае, если цветов не более 256, то так же.
Правда, для этого нужен драйвер, который умеет работать с соответствующими экранными режимами. В комплекте Borland Pascal такого нет. Это, разумеется, при условии, что Вы непременно хотите использовать модуль Graph. Собственно, я хотел дать Вам некоторую информацию, которая может послужить поводом к размышлению. 1. Графический режим, который Вы пытаетесь использовать, давно устарел, нигде не используется и, более того, оказался тупиковой ветвью развития видеоконтроллеров. 2. Модуль Graph не предназначен для динамичной графики. 3. MS DOS, для которого Вы пытаетесь писать программы, устарел. Хуже того, даже те возможности, которые у него есть (по крайней мере, наиболее интересные из них), не поддерживаются новыми версиями Windows. Конечно, Вам решать, какими средствами пользоваться. И на первый взгляд кажется, что т.к. Вы что-то умеете, то проще будет немного добавить к этим умениям, чтобы получить результат. Но на проверку может оказаться, что во-первых, это "немного" окажется не так уж мало, а во-вторых, что полученные новые знания все равно окажутся мало полезными, т.к. будут относиться к уже фактически не существующей ОС и средствам, как можно заставить работать программы для этой ОС в другой ОС. Лично я, когда требуется написать простенькую игрушку, в которой не используется 3D-графика, поступаю так: 1. Создаю простейшее окно Windows (по потребностям либо "с рамкой", либо полноэкранное). 2. Создаю в памяти образ BMP-файла. 3. В этом образе формирую изображение. 4. Вывожу это изображение на экран одной командой. Это - что касается изображения. В виде бонуса получаю: 1. Отсутствие необходимости писать свой драйвер клавиатуры для DOS, т.к. имеющийся в DOS драйвер для динамических игр не подходит, а аналогичный в Windows - подходит. 2. Существенно более простой вывод звука в Windows чем в DOS. PS. Да, в случае 3D-графики преимущества Windows намного более ощутимы. Последний раз редактировалось s-andriano; 17.06.2012 в 17:13. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Переходник с VGA на SCART | Terran | Компьютерное железо | 6 | 22.11.2012 21:36 |
Подключение телевизора VGA -> RGB в ubuntu 11.04 | Bilargo | Компьютерное железо | 8 | 03.12.2011 22:17 |
vga проблема! | Gangster050196 | Свободное общение | 6 | 05.09.2011 12:37 |
Провод HDMI или VGA ? | Fulit | Компьютерное железо | 13 | 16.08.2010 20:20 |
Стандартный VGA драйвер | Basshunter | Компьютерное железо | 2 | 06.10.2009 13:04 |