Прочитать на английском

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


D3DERR

Ниже приведен список значений, которые могут быть возвращены методами Direct3D. Список значений, которые может возвращать каждый из них, см. в описаниях отдельных методов.

Константа Описание
D3DOK_NOAUTOGEN
Это код успешного выполнения. Однако автоматическое создание MIP-карт не поддерживается для этого формата. Это означает, что создание ресурса будет выполнено успешно, но уровни MIP-карты не будут созданы автоматически.
D3DERR_CONFLICTINGRENDERSTATE
Заданные в данный момент состояния отрисовки не могут использоваться вместе.
D3DERR_CONFLICTINGTEXTUREFILTER
Текущие фильтры текстур нельзя использовать вместе.
D3DERR_CONFLICTINGTEXTUREPALETTE
Текущие текстуры нельзя использовать одновременно.
D3DERR_DEVICEHUNG
Устройство, которое вернуло этот код, привело к сбросу аппаратного адаптера операционной системой. Большинство приложений должны уничтожить устройство и завершить работу. Приложения, которые должны продолжать работу, должны уничтожить все объекты видеопамяти (поверхности, текстуры, блоки состояний и т. д.) и вызвать Reset(), чтобы поместить устройство в состояние по умолчанию. Если приложение продолжит отрисовку таким же образом, устройство вернется в это состояние.
Применяется только к Direct3D 9Ex.
D3DERR_DEVICELOST
Устройство потеряно, но в настоящее время его невозможно сбросить. Поэтому отрисовка невозможна. Объект устройства Direct3D, отличный от объекта, возвращающего этот код, привел к сбросу аппаратного адаптера операционной системой. Удалите все объекты видеопамяти (поверхности, текстуры, блоки состояний) и вызовите Reset(), чтобы вернуть устройство в состояние по умолчанию. Если приложение продолжает отрисовку без сброса, вызовы отрисовки будут выполнены успешно.
D3DERR_DEVICENOTRESET
Устройство было потеряно, но в настоящее время его можно сбросить.
D3DERR_DEVICEREMOVED
Аппаратный адаптер удален. Приложение должно уничтожить устройство, выполнить перечисление адаптеров и создать другое устройство Direct3D. Если приложение продолжит отрисовку без вызова Reset, вызовы отрисовки будут выполнены успешно.
Применяется только к Direct3D 9Ex.
D3DERR_DRIVERINTERNALERROR
Внутренняя ошибка драйвера. Приложения должны уничтожить и повторно создать устройство при получении этой ошибки. Указания по отладке этой ошибки см. в разделе Внутренние ошибки драйвера (Direct3D 9).
D3DERR_DRIVERINVALIDCALL
Не используется.
D3DERR_INVALIDCALL
Недопустимый вызов метода. Например, параметр метода может быть недопустимым указателем.
D3DERR_INVALIDDEVICE
Запрошенный тип устройства недопустим.
D3DERR_MOREDATA
Доступно больше данных, чем может содержать указанный размер буфера.
D3DERR_NOTAVAILABLE
Это устройство не поддерживает запрашиваемую методику.
D3DERR_NOTFOUND
Запрашиваемый элемент не найден.
D3D_OK
Без ошибок.
D3DERR_OUTOFVIDEOMEMORY
У Direct3D недостаточно памяти для выполнения операции. Устройство использует больше ресурсов в одной сцене, чем может одновременно поместиться в видеопамяти. Функция Present, PresentEx или CheckDeviceState может возвращать эту ошибку. Восстановление аналогично D3DERR_DEVICEHUNG, хотя приложению может потребоваться сократить использование памяти для каждого кадра, чтобы избежать повторения ошибки.
D3DERR_TOOMANYOPERATIONS
Приложение запрашивает больше операций фильтрации текстур, чем поддерживает устройство.
D3DERR_UNSUPPORTEDALPHAARG
Устройство не поддерживает указанный аргумент наложения текстур для альфа-канала.
D3DERR_UNSUPPORTEDALPHAOPERATION
Устройство не поддерживает указанную операцию наложения текстур для альфа-канала.
D3DERR_UNSUPPORTEDCOLORARG
Устройство не поддерживает указанный аргумент наложения текстур для значений цвета.
D3DERR_UNSUPPORTEDCOLOROPERATION
Устройство не поддерживает указанную операцию наложения текстур для значений цвета.
D3DERR_UNSUPPORTEDFACTORVALUE
Устройство не поддерживает указанное значение коэффициента текстуры. Не используется; предоставляется только для поддержки старых драйверов.
D3DERR_UNSUPPORTEDTEXTUREFILTER
Устройство не поддерживает указанный фильтр текстур.
D3DERR_WASSTILLDRAWING
Предыдущая операция blit, которая передает информацию на эту поверхность или с нее, является неполной.
D3DERR_WRONGTEXTUREFORMAT
Недопустимый формат текстурной поверхности.
E_FAIL
В подсистеме Direct3D произошла неопределенная ошибка.
E_INVALIDARG
В возвращающую функцию передан недопустимый параметр.
E_INVALIDCALL
Недопустимый вызов метода. Например, параметр метода может иметь недопустимое значение.
E_NOINTERFACE
Интерфейс объекта недоступен.
E_NOTIMPL
Не реализован.
E_OUTOFMEMORY
Direct3D не удалось выделить достаточно памяти для завершения вызова.
S_OK
Без ошибок.
S_NOT_RESIDENT
По крайней мере одно выделение ресурсов находится на диске. Только Direct3D 9Ex.
S_RESIDENT_IN_SHARED_MEMORY
На диске нет выделений, составляющих ресурсы. Тем не менее, по крайней мере одно выделение не находится в доступной памяти GPU. Только Direct3D 9Ex.
S_PRESENT_MODE_CHANGED
Режим отображения на рабочем столе изменен. Приложение может продолжить отрисовку, но может быть преобразование или растяжение цвета. Выберите формат обратного буфера, аналогичный текущему режиму отображения, и вызовите reset, чтобы повторно создать цепочки буферов. Устройство покинет это состояние после вызова сброса. Только Direct3D 9Ex.
S_PRESENT_OCCLUDED
Область презентации заключается. Загораживание означает, что окно презентации свернуто или другое устройство перешло в полноэкранный режим на том же мониторе, что и окно презентации, а окно презентации полностью находится на этом мониторе. Загораживание не будет происходить, если клиентская область охватывается другим окном.
Окклюзированные приложения могут продолжать отрисовку, и все вызовы будут выполнены успешно, но окно occluded презентации не будет обновлено. Желательно, чтобы приложение прекратило отрисовку в окне презентации с помощью устройства и продолжало вызывать CheckDeviceState до тех пор, пока не вернется S_OK или S_PRESENT_MODE_CHANGED.
Только Direct3D 9Ex.
D3DERR_UNSUPPORTEDOVERLAY
Устройство не поддерживает наложение для указанного размера или режима отображения.
Direct3D 9Ex только в Windows 7.
D3DERR_UNSUPPORTEDOVERLAYFORMAT
Устройство не поддерживает наложение для указанного формата поверхности.
Direct3D 9Ex только в Windows 7.
D3DERR_CANNOTPROTECTCONTENT
Не удается защитить указанное содержимое.
Direct3D 9Ex только в Windows 7.
D3DERR_UNSUPPORTEDCRYPTO
Указанный алгоритм шифрования не поддерживается.
Direct3D 9Ex только в Windows 7.
D3DERR_PRESENT_STATISTICS_DISJOINT
Текущая статистика не имеет упорядоченной последовательности.
Direct3D 9Ex только в Windows 7.

Комментарии

Ошибки представлены отрицательными значениями и не могут быть объединены.

Другие коды возврата содержатся в S_PRESENT.

Код средства _FACD3D используется для создания кодов ошибок, как показано в следующих макросах.

// Direct3D Errors
#define D3DERR_UNSUPPORTEDFACTORVALUE  MAKE_D3DHRESULT(2079)
#define D3DERR_WASSTILLDRAWING         MAKE_D3DHRESULT(540)
    
#define _FACD3D                  0x876   // Direct3D facility code
#define MAKE_D3DHRESULT( code )  MAKE_HRESULT( 1, _FACD3D, code )
#define MAKE_D3DSTATUS( code )   MAKE_HRESULT( 0, _FACD3D, code )

Требования

Требование Значение
Заголовок
D3d9.h

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

Константы Direct3D