Поделиться через


функция обратного вызова PDD_CANCREATESURFACE (ddrawint.h)

Функция обратного вызова CanCreateD3DBuffer определяет, может ли драйвер создать команду уровня драйвера или буфер вершин указанного описания.

Синтаксис

PDD_CANCREATESURFACE PddCancreatesurface;

DWORD PddCancreatesurface(
  PDD_CANCREATESURFACEDATA unnamedParam1
)
{...}

Параметры

unnamedParam1

Указывает на структуру DD_CANCREATESURFACEDATA . Эта структура содержит сведения, необходимые драйверу для определения возможности создания команды или буфера вершин.

Возвращаемое значение

CanCreateD3DBuffer возвращает код обратного вызова.

Комментарии

Этот обратный вызов используется только в том случае, если драйвер управляет командами на уровне драйвера и буферами вершин.

CanCreateD3DBuffer должен проверка описание поверхности, на которое указывает элемент lpDDSurfaceDesc структуры DD_CANCREATESURFACEDATA в lpCanCreateD3DBuffer, чтобы определить, может ли драйвер поддерживать формат и возможности запрошенного буфера для режима, в который сейчас находится драйвер. Драйвер должен возвращать DD_OK в члене ddRVal той же структуры, если он поддерживает этот тип буфера. В противном случае он должен вернуть код ошибки DDERR_Xxx, который лучше всего описывает, почему он не поддерживает буфер.

Этот вызов имеет тот же прототип, что и DdCanCreateSurface. Обратный вызов CanCreateD3DBuffer используется, однако, если в элементе ddsCapsструктуры DD_SURFACE_LOCAL для рассматриваемой поверхности установлен флаг DDSCAPS_EXECUTEBUFFER.

Драйвер определяет тип запрашиваемого буфера, проверяя член ddsCaps структуры DD_SURFACE_LOCAL на наличие следующих флагов:

Flag Значение
DDSCAPS2_COMMANDBUFFER Драйвер должен выделить буфер команд.
DDSCAPS2_VERTEXBUFFER Драйвер должен выделить явный буфер вершин.
 
Примечание Если ни флаги не заданы, драйвер должен выделить неявный буфер вершин. Неявные буферы вершин не должны размещаться в видеопамяти, так как они должны выполнять чтение и запись. В видеопамяти можно безопасно поместить только явные буферы вершин с установленным флагом DDSCAPS_WRITEONLY.
 

Требования

Требование Значение
Целевая платформа Персональный компьютер
Верхняя часть ddrawint.h (включая Winddi.h)

См. также раздел

CreateD3DBuffer

DD_CANCREATESURFACEDATA

DD_SURFACE_LOCAL

DdCanCreateSurface