D3DERR

다음은 Direct3D 메서드에서 반환할 수 있는 값 목록입니다. 각각 반환할 수 있는 값 목록은 개별 메서드 설명을 참조하세요.

상수 설명
D3DOK_NOAUTOGEN
성공 코드입니다. 그러나 Mipmap의 자동 생성은 이 형식에 대해 지원되지 않습니다. 즉, 리소스 만들기는 성공하지만 Mipmap 수준은 자동으로 생성되지 않습니다.
D3DERR_CONFLICTINGRENDERSTATE
현재 설정된 렌더링 상태는 함께 사용할 수 없습니다.
D3DERR_CONFLICTINGTEXTUREFILTER
현재 텍스처 필터를 함께 사용할 수 없습니다.
D3DERR_CONFLICTINGTEXTUREPALETTE
현재 텍스처는 동시에 사용할 수 없습니다.
D3DERR_DEVICEHUNG
이 코드를 반환한 디바이스로 인해 OS에서 하드웨어 어댑터를 다시 설정했습니다. 대부분의 애플리케이션은 디바이스를 삭제하고 종료해야 합니다. 계속해야 하는 애플리케이션은 모든 비디오 메모리 개체(표면, 텍스처, 상태 블록 등)를 삭제하고 Reset()을 호출하여 디바이스를 기본 상태로 설정해야 합니다. 그러면 애플리케이션이 동일한 방식으로 렌더링을 계속하면 디바이스가 이 상태로 돌아갑니다.
Direct3D 9Ex에만 적용됩니다.
D3DERR_DEVICELOST
디바이스가 손실되었지만 현재 초기화할 수 없습니다. 따라서 렌더링이 불가능합니다. 이 코드를 반환한 개체가 아닌 Direct3D 디바이스 개체로 인해 OS에서 하드웨어 어댑터를 다시 설정했습니다. 모든 비디오 메모리 개체(표면, 텍스처, 상태 블록)를 삭제하고 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
이 표면에서 정보를 전송하는 이전의 블릿 작업은 불완전합니다.
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
프레젠테이션 영역이 가려집니다. 폐색은 프레젠테이션 창이 최소화되었거나 다른 디바이스가 프레젠테이션 창과 동일한 모니터에서 전체 화면 모드로 전환되고 프레젠테이션 창이 해당 모니터에 완전히 있음을 의미합니다. 클라이언트 영역에 다른 창이 적용되는 경우 폐색이 발생하지 않습니다.
폐색된 애플리케이션은 렌더링을 계속할 수 있으며 모든 호출이 성공하지만 폐색된 프레젠테이션 창은 업데이트되지 않습니다. 바람직하게는 애플리케이션이 디바이스를 사용하여 프레젠테이션 창에 렌더링을 중지하고 S_OK 또는 S_PRESENT_MODE_CHANGED 반환될 때까지 CheckDeviceState 를 계속 호출해야 합니다.
Direct3D 9Ex만 해당됩니다.
D3DERR_UNSUPPORTEDOVERLAY
디바이스는 지정된 크기 또는 디스플레이 모드에 대한 오버레이를 지원하지 않습니다.
Windows 7에서만 Direct3D 9Ex.
D3DERR_UNSUPPORTEDOVERLAYFORMAT
디바이스는 지정된 표면 형식에 대한 오버레이를 지원하지 않습니다.
Windows 7에서만 Direct3D 9Ex.
D3DERR_CANNOTPROTECTCONTENT
지정된 콘텐츠를 보호할 수 없습니다.
Windows 7에서만 Direct3D 9Ex.
D3DERR_UNSUPPORTEDCRYPTO
지정된 암호화 알고리즘은 지원되지 않습니다.
Windows 7에서만 Direct3D 9Ex.
D3DERR_PRESENT_STATISTICS_DISJOINT
현재 통계에는 순서가 정연하지 않습니다.
Windows 7에서만 Direct3D 9Ex.

설명

오류는 음수 값으로 표시되며 결합할 수 없습니다.

다른 반환 코드는 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 상수