я хочу сделать мультипликацию с помощью видеостраниц.
вопрос:
когда делаю вывод с помощью setactivepage,setvisualpage - после вывода второй страицы содержимое первой смещается куда-то вниз, а не исчезает.
а если делаю как прочитал в одной книге:
Вообще-то надо инициализировать режим, в котором больше одной видеостраницы. В режиме VgaHi страница всего одна, он не пойдет. Инициализируй графику так:
g_driver := VGA; g_mode := VGAMed;и учти, что разрешение = 640*350 при двух видеостраницах
InitGraph(g_driver, g_mode, '');
а три страницы нельзя?
то есть если мне надо больше, то просто заменять рисунок на предыдущей?
Да, просто меняешь рисунок и переключаешься на другую страницу.
Вся суть - в том, что самого процесса перерисовки не видно, смена активной страницы происходит мгновенно (по-моему, за один проход луча по экрану, но я могу ошибаться), и не видно мерцания, которое получается, когда стирается старое, и рисуется новое изображение, поскольку вот это самое затирание старого и рисование нового делается на НЕактивной странице, а показывается тебе сразу результат...
В принципе, есть видеорежимы и с четырьмя страницами (это EGA -> EGALo и VGA -> VGALo), но ты будешь только путаться с ними. В 4-х видеостраницах есть смысл только, если у тебя всего 4 кадра, ты сразу заполняешь все 4 страницы, каждую своим кадром, а потом просто меняешь активную страницу... Во всех остальных случаях выгоднее работать с 2-мя страницами...
Не знаю кода от Borland не видел, но мигание при SetVisualPage даже на 386DX-40 явное. Снимается только ожиданием VR
Все зависело от версии VBE (VESA BIOS Extension), на версии 1.2 при SetVisualPage не было синхронизации с VerticalRetrace, и надо было добавлять код ожидания вручную. Начиная со второй VBE это делается автоматически. Оззя, ты ж TMT-шник? Посмотри описание SetVisualPage в доках на TMT, зачем там по твоему введен второй параметр?
volvo
Стесняюсь сказать, но на сей 3-шке VGA стоит 256 kb (Phoenix BIOS). Так что, никаким vBE здеся и не пахнет близко
Всё тестировалось на VGA Med.
Видел я код тмтшный, он как раз на vbe и based. 4-ка ТМТ ж не держит 640х350Х4bit
А, кстати, где-то на сорсах Вадим Бодров объяснял сей глюк/фичу. Пороюсь, постраюсь найти