문제

특히 DirectX 9.0c(C++ 코드 내)의 코드에서 그래픽 카드 모델/브랜드를 얻을 수 있는 방법이 궁금합니다.

도움이 되었습니까?

해결책

런타임 시 기기 모델과 공급업체를 쿼리할 수 있습니다.

  • OpenGL에서는 glGetString(GL_VENDOR), GL_RENDERER 또는 GL_VERSION 명령을 사용하여 원하는 정보를 얻습니다.

  • DirectX 9에서는 정보가 Microsoft 구성 시스템에 있는 것으로 나타나며 장치 데이터베이스에서 쿼리됩니다.이 문서의 섹션 3에는 예제 코드도 포함되어 있습니다. http://msdn.microsoft.com/en-us/library/bb204848(VS.85).aspx동일한 시스템을 사용하면 비디오 카드의 RAM 용량, 드라이버 번호 등과 같은 정보를 얻을 수 있습니다.

다른 팁

DirectX에서 가장 쉬운 방법은 통과하는 것입니다 idirect3d9 :: getAdapterIdentifier.

그냥 만듭니다 d3dadapter_identifier9 물체, 포인터를 전달하여 GetAdApterInlifier에 전달하십시오. DirectX는 설명 필드에서 그래픽 카드 설명을 문자열로 작성합니다. 또한 카드가 어떤 디스플레이 장치인지에 대한 정보와 어떤 드라이버 버전이 있는지에 대한 정보도 포함됩니다.

당신은 다음과 같은 것을 얻습니다.

  • 설명 : "Nvidia Geforce GTX 570"
  • 장치 : ". display1"
  • 드라이버 : "nvd3dum.dll"

보세요 제 2 장 Direct3d 내 책에서 Direct3d 그래픽 파이프 라인. 특정 장치를 식별하는 섹션 2.12를 참조하십시오.

dx sdk의 샘플 dxdiagoutput에서와 같이 "Direcx Diagnostic Tool"API를 사용할 수 있습니다.http://msdn.microsoft.com/en-us/library/ee416986%28v=vs.85%29.aspx

IDirect3D9* d3dobject = Direct3DCreate9(D3D_SDK_VERSION);
D3DPRESENT_PARAMETERS d3dpresent;
memset(&d3dpresent, 0, sizeof(D3DPRESENT_PARAMETERS));
d3dpresent.Windowed = TRUE;
d3dpresent.SwapEffect = D3DSWAPEFFECT_DISCARD;
UINT adaptercount = d3dobject->GetAdapterCount();
D3DADAPTER_IDENTIFIER9* adapters = (D3DADAPTER_IDENTIFIER9*)malloc(sizeof(D3DADAPTER_IDENTIFIER9) * adaptercount);

for (int i = 0; i < adaptercount; i++)
{
      d3dobject->GetAdapterIdentifier(i, 0, &(adapters[i]));
}

그런 다음 어댑터에 대한 설명을 받으십시오 (어댑터-> 설명)

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