DirectDraw Surface. Поверхностью (surface) в DirectDraw называется прямоугольная область памяти, обычно содержащая графические данные. Блок памяти, изображающий поверхность, может находиться как в системной, так и в видеопамяти. Хранение поверхностей в видеопамяти обычно повышает скорость работы программы, поскольку большинство видеокарт не может обращаться к системной памяти напрямую.
Поверхности делятся на несколько типов. Простейшими являются внеэкранные (off-screen) поверхности. Внеэкранная поверхность может находиться как в видеопамяти, так и в системной памяти, но не отображается на экране. Такие поверхности обычно используются для хранения спрайтов и фоновых изображений.
Первичная (primary) поверхность, напротив, представляет собой участок видеопамяти, отображаемой на экране. Любая программа DirectDraw, обеспечивающая графический вывод, имеет первичные поверхности. Первичная поверхность должна находиться в видеопамяти.
Первичные поверхности часто бывают составными (complex), или, что то же самое, переключаемыми (flippable). Переключаемая поверхность может участвовать в переключении страниц - операции, при которой содержимое всей поверхности мгновенно отображается на экране с помощью специальных аппаратных средств. Переключение страниц используется во многих графических программах как с поддержкой DirectDraw, так и без, поскольку оно обеспечивает очень гладкую анимацию и устраняет мерцание. Переключаемая первичная поверхность на самом деле состоит из двух поверхностей, одна из которых отображается на экране, а другая - нет. Невидимая поверхность называется вторичным буфером (back buffer). При переключении страниц поверхности меняются местами: та, которая была вторичным буфером, отображается на экране, а та, что ранее отображалась, превращается во вторичный буфер.
Как внеэкранные, так и первичные поверхности делятся на две разновидности: палитровые (palettized) и беспалитровые (non-palettized). Палитровая поверхность вместо конкретных значений цветов содержит индексы в цветовой таблице, которая называется палитрой. В DirectDraw палитровыми являются только 8-битные поверхности. Поверхности с глубиной пикселей, равной 16, 24 и 32 битам, являются бес-палитровыми. Вместо индексов в них хранятся фактические значения цветов.
Поскольку в каждом пикселе беспалитровой поверхности находятся реальные цветовые данные, необходимо знать, в каком формате хранятся отдельные пиксели поверхностей. Формат пикселя описывает способ хранения красной, зеленой и синей (RGB) составляющих. Он зависит от глубины пикселей, видеорежима и аппаратной архитектуры.
Источник: https://www.helloworld.ru/texts/comp/games/directx/directx/read3.htm
![]() |
Поиск
Новые статьи
- Поверхность DirectDraw
- T&L аппаратный
- Обёртка, оболочка (функция/структура/класс-*)
- Открылась наша группа ВКонтакте
- Depth Sorting
- Готова статья "DirectX Graphics. Освещение"
- Готова статья "DirectX Graphics. Шрифты (Using Fonts)"
- Готова статья "DirectX Graphics. Билборды (Billboards)"
- Готова статья DirectX Graphics. Частицы (Particles)
- Поток вершинный (Vertex stream)
Последние изменения
- DirectX Graphics (DirectX 9). Анимированные спрайты
- Ссылки
- DirectX Graphics (DirectX 9). Начало работы
- DirectX Graphics (DirectX 9). Поверхности и растры
- Создание приложений (Cpp, Win32)
- DirectX Graphics (DirectX 8). Начало работы
- Софт
- DirectX Graphics (DirectX 8). Шрифты
- DirectX Graphics (DirectX 8). Частицы (Particles)
- DirectX Graphics (DirectX 8). Билборды (Billboards)
Последние комментарии