Программирование графики

Ускоренный DirectDraw

Xakep, номер #042, стр. 042-060-3


Если ты подумал, что после переключения экрана переменная FPrimarySurface начинает показывать не на первичную, а на вторичную поверхность, то ты сильно ошибаешься. Переменные FPrimarySurface и FBackgroundSurface не меняют своего назначения. Переменная FPrimarySurface всегда указывает на первичную, а FBackgroundSurface на вторичную поверхность.

Разрешение на отображение

Луч монитора рисует изображение, начиная с левого верхнего угла примерно так, как показано на рисунке 2. Когда луч доходит до левого нижнего угла, отображение останавливается, и луч вхолостую направляется в начало экрана (на рисунке показано красной стрелкой).

Переключение экрана может быть невозможно в тот момент, когда луч экрана отображает информацию, и разрешено, когда луч возвращается в начало рисования. Это вполне логично, потому что если попробовать переключить экран в середине отображения, верхняя половина экрана будет показывать старый экран, а нижняя - новый. Такой эффект губителен для глаз и создаст сумасшедшие мерцания. Именно поэтому переключение доступно не всегда, и если не установить флаг DDFLIP_WAIT, то переключение может вообще не произойти.

Shutdown

На этом сегодняшний пример можно закончить. Вот теперь мы окончательно готовы для создания первой спрайтовой анимации, чем и займемся в следующий раз. Я уже практически подготовил пример и могу тебя заинтриговать тем, что он получился очень даже ничего. Остается только подождать 30 дней до выхода очередного Х.

Исходники примера, как всегда, можно скачать с моего сайта www.cydsoft.com/vr-online после выхода этого номера в свет.

P.S. У меня к тебе просьба на сто баксов :). Не пиши мне большие письма. После появления рубрики кодинг меня каждый день валят вопросами. Я не в состоянии всем рассказывать то, о чем пишут книги. Я могу что-то подсказать, где-то помочь, но не больше. А просьбы типа помоги написать прогу вообще нереальны. Я отвечаю только на те вопросы, где ответ займет несколько строчек. Целые лекции по мылу я разводить не могу. Я бы с удовольствием помог всем, но это НЕВОЗМОЖНО. Вас слишком много, а я один :(((. Поэтому лучше разбей свой вопрос на несколько маленьких и спрашивай постепенно, а не все сразу.

Назад на стр. 042-060-2  Содержание