Linear Frame Buffer и GO32
Модератор: Модераторы
Linear Frame Buffer и GO32
Пожалуйста, поделитесь кодом работы с Linear Frame Buffer под G032. Достаточно процедуры вывода точки(например, в видеорежиме 4113h). Заранее спасибо.
Ну например тут: http://vmtce.sourceforge.net, там еще и примитивный GUI в комплекте.
Спасибо, посмотрел. Там используется метод, который использую и я. Видимо,и мой код рабочий. Значит, LFB нельзя использовать из-под Window начиная с NT все-таки. Пришлось все через "окна" памяти делать с вызовом 4F0Ah. Но скорость все равно низкая: рисую через буфер в памяти, который копирую затем в видеопамять блоками по 64кб. Разрешение 640х480х32 (режим 121h). FPS приблизительно 10 или даже меньше. Собственно вопрос, как повысить хотя бы до 24?
Alo писал(а):Значит, LFB нельзя использовать из-под Window начиная с NT все-таки.
Можно, но только в из нулевого кольца (см. универсальный драйвер VBEMP) и монопольно.
Alo писал(а):Собственно вопрос, как повысить хотя бы до 24?
Использовать Win32 и DirectDraw. Возможно, с прослойкой в виде DosBOX. Из-под ntvdm нормальной скорости все равно не будет, причем может оказаться, что использование 0Ch/int 10h окажется быстрее, чем непосредственная работа с видеопамятью.
Еще очень сильно зависит от видеокарты и ее драйвера. Например, драйвера nVidia (занимался этим несколько лет назад, сейчас может быть неактуально) в полноэкранных текстовых режимах давали DOS-программам доступ к физической видеопамяти по адресу 0B8000h, а ATI не давали.
