سؤال

كنت أتساءل كيف يمكنني الحصول على نموذج بطاقة الرسومات / العلامة التجارية من التعليمات البرمجية خاصة من DirectX 9.0C (من داخل رمز C ++).

هل كانت مفيدة؟

المحلول

عند وقت التشغيل، يمكنك الاستعلام عن طراز الجهاز وبائعا:

  • في OpenGL، استخدم الأمر Glogtstring (GL_VENDOR) أو GL_RENDERER أو GL_VERVERS للحصول على المعلومات التي تلت إليها.

  • في DirectX 9، يبدو أن المعلومات موجودة في نظام تكوين Microsoft، ويتم الاستعلام عن قاعدة بيانات الجهاز. إنه القسم 3 من هذه الوثيقة، والتي لديها أيضا رمز المثال: http://msdn.microsoft.com/en-us/library/bb204848(VS.85).aspx.باستخدام نفس النظام، يمكنك الحصول على هذه المعلومات كمقدمة ذاكرة الوصول العشوائي تحتوي بطاقة الفيديو، ورقم برنامج التشغيل، إلخ.

نصائح أخرى

أسهل طريقة في DirectX هي من خلال IDirect3D9 :: GetAdAdteriderifier..

مجرد إنشاء أ d3dadapter_identifer9. كائن، تمرير مؤشر له إلى GetAdAdaptererifier. يملأ DirectX وصف بطاقة الرسومات كسلسلة في حقل الوصف. يتضمن أيضا معلومات عن جهاز العرض الذي تكون فيه البطاقة، وما هي إصدار برنامج التشغيل لديك.

تحصل على شيء من هذا القبيل:

  • الوصف: "NVIDIA GEFORCE GTX 570"
  • جهاز: ". display1"
  • سائق: "nvd3dum.dll"

إلقاء نظرة على الفصل 2. Direct3D. من كتابي خط أنابيب الرسومات Direct3D. وبعد انظر القسم 2.12، تحديد جهاز معين.

يمكنك استخدام "أداة تشخيص Direcx" API، مثل في نموذج DXDiagoutput من DX SDKhttp://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