2
내가 다음 코드를 통해 다이렉트 장치를 만들려고 해요 작동합니다C# : DirectX 장치를 만들 수 없습니다. 어느 하드웨어 유형 또는 소프트웨어 유형은
Caps deviceCapability;
int deviceAdapter = Manager.Adapters.Default.Adapter;
try
{
deviceCapability = Manager.GetDeviceCaps(
deviceAdapter, DeviceType.Hardware);
}
catch (Exception ex1)
{
try
{
deviceCapability = Manager.GetDeviceCaps(
deviceAdapter, DeviceType.Software);
}
catch (Exception ex2)
{
deviceCapability = Manager.GetDeviceCaps(
deviceAdapter, DeviceType.Reference);
}
}
CreateFlags deviceFlags = CreateFlags.SoftwareVertexProcessing;
if(deviceCapability.DeviceCaps.SupportsHardwareTransformAndLight == true)
{
deviceFlags = CreateFlags.HardwareVertexProcessing;
}
mDevice = new Device(deviceAdapter, deviceCapability.DeviceType,
mInvisiblePanel, deviceFlags, mPresentParams);
문제는 (예 : 내 사무실 컴퓨터와 같은) 일부 컴퓨터에이 유일한 작품, 그 동안 다른 사람 (특히 Panasonic CF-19 Toughbook)에는 없습니다. 문제가되는 PC가 dxdiag를 통해 하드웨어 가속을 사용할 수 있도록 설정했는지 확인했습니다. 여전히 움직이지 않습니다.
불행히도, 오류 메시지는 "응용 프로그램 오류"입니다. 위의 코드 사이에 여러 메시지 상자가 붙어있어 ex1 및 ex2 catch 블록과 충돌하지는 않습니다.
해결 방법에 대한 의견이 있으십니까?
편집 : 죄송합니다. 방금 PresentParameters를 표시하는 것을 잊었습니다.
// Setup the device parameters
PresentParameters mPresentParams = new PresentParameters();
mPresentParams.Windowed = true;
mPresentParams.SwapEffect = SwapEffect.Discard;
mPresentParams.AutoDepthStencilFormat = DepthFormat.D16;
mPresentParams.EnableAutoDepthStencil = true;
///* TODO: Anti-aliasing is not working
mPresentParams.MultiSample = MultiSampleType.NonMaskable;
mPresentParams.MultiSampleQuality = 0;
동일한 버전의 DirectX? – MusiGenesis
Managed DirectX는 4 년간 사용이 중단 되었습니까? 이 물건에는 가스가 없어집니다. 2007 년 8 월 SDK 버전이 아직 지원되는 마지막 버전이었습니다. 컴퓨터에서 DirectX와 일치하는 버전이 필요하다고 생각합니다. 버전 9, 나는 생각한다. XNA를 사용하여 앞으로 이동하십시오. –
예, Toughbook과 컴퓨터에서 동일한 DirectX를 사용하고 있습니다. 적어도, dxdiag에 따르면. – Japtar