Microsoft DirectX 2

Создайте простую вне экранную поверхность


Создайте простую вне экранную поверхность типа, который мог бы использоваться, чтобы кэшировать растры, которые будут позже составлены для блиттинга. Высота и ширина требуется для всех поверхностей за исключением основной поверхности. Члены в структуре DDSURFACEDESC (ddsd ниже) подготовлены к созданию простой вне экранной поверхности.

DDSURFACEDESC ddsd;

ddsd.dwSize = sizeof( ddsd );

//Tell DDRAW, которые поля имеют силу

ddsd.dwFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH;

//Ask для простой off-screen поверхности, установленной по размеру

//100 100 пикселями

ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN;

dwHeight = 100;

dwWidth = 100;

DirectDraw создает эту поверхность в памяти дисплея, если это не будет успешно, тогда поверхность будет создана в памяти системы. Если поверхность была создана, используйте флажки DDSCAPS_SYSTEMMEMORY или DDSCAPS_VIDEOMEMORY в dwCaps, чтобы определить где, в памяти системы или памяти дисплея, соответственно. Ошибка возвращается, если поверхность не может быть создана в определенном расположении.

DirectDraw также учитывает создание сложных поверхностей. Сложная поверхность - набор поверхностей, созданных с одиночным обращением к IDirectDraw:: CreateSurface. Если флажок DDSCAPS_COMPLEX установлен в IDirectDraw:: CreateSurface, одна или много неявных поверхностей будут созданы DirectDraw в дополнение к поверхности, явно определенной. Сложные поверхности управляются вместе,одиночное обращение к IDirectDraw::Release разрушит все поверхности в структуре, и одиночное обращение к IDirectDrawSurface::Restore  восстановит их все.


Содержание раздела