문제

Createetexture 기능으로 DirectX에서 메모리에서 텍스처를 만들면 이것에 대해 궁금합니다.

HRESULT CreateTexture(
  UINT Width,
  UINT Height,
  UINT Levels,
  DWORD Usage,
  D3DFORMAT Format,
  D3DPOOL Pool,
  IDirect3DTexture9** ppTexture,
  HANDLE* pSharedHandle
);

... 그리고 들어갑니다 D3DFMT_UNKNOWN 형식 정확히 무슨 일이 일어날까요? 첫 번째 또는 두 번째 레벨의 표면을 얻으려고하면 오류가 발생합니까? 실패 할 수 있습니까? 그래픽 장치는 선택의 임의 형식 만 선택합니까? 이로 인해 다른 그래픽 카드 모델/브랜드 사이에 문제가 발생할 수 있습니까?

도움이 되었습니까?

해결책

방금 시도했는데 실패하지 않습니다.

언제 Usage 설정되었습니다 D3DUSAGE_RENDERTARGET 또는 D3DUSAGE_DYNAMIC, 그것은 지속적으로 나왔습니다 D3DFMT_A8R8G8B8, 내가 뒷 버퍼 형식 또는 기타 설정에 무엇을했는지에 관계없이. 그래픽 카드와 관련이 있는지 모르겠습니다. 내 생각에 알 수없는 수단 인 "Pick for Me", 32 비트 형식이 내 카드에서 가장 쉽다는 것입니다.

사용이 있었을 때 D3DUSAGE_DEPTHSTENCIL, 일관되게 실패했습니다.

내 최선의 결론은 그 지정입니다 D3DFMT_UNKNOWN 형식은 DirectX에게 그것이 무엇인지 선택할 수 있도록합니다. 아니면 항상 불이행 일 것입니다 D3DFMT_A8R8G8B.

슬프게도, 나는 어디서나 문서에서 이것을 확인할 수 없습니다. : |

다른 팁

MSDN 말하지 않습니다. 그러나 나는 당신이 결과적으로 "d3derr_invalidcall"을 얻을 것이라고 확신합니다.

메소드가 성공하면 반환 값은 d3d_ok입니다. 메소드가 실패하면 반환 값은 다음 중 하나 일 수 있습니다.

나는 이것이 "정의되지 않은"범주에 속한다고 생각합니다. 일부 드라이버는 할당에 실패하는 반면 다른 드라이버는 할당에 실패합니다. 나는 WDK 에서이 조건을 처리해야한다고 말한 적이 없다. 디버그 DX 런타임을 활성화하면 오류 메시지가 표시됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top