انواع سی دی و نرم افزار های جدید

      لینک های داغ

 
   
  





تهران وب
اخبار روز :: دوستان :: تهران مانیا :: پزشکی :: بالاشهر :: ایران من
ایران 20 :: امواج :: هفت ستاره :: تهران وب :: پرشین تاپ :: طنز :: ایران شادی :: خنده :: لینک باکس :: دنیای خنده

آموزش کامپيوتر :: آموزش انواع نرم افزار

موضوع: آموزشDirectX-Graphic (قسمت دوم)

موضوع : بدست آوردن مشخصات و تواناييهاي گرافيکي يک سيستم توسط DirectX-Graphic

1 - شمارش تعداد آداپتورهاي گرافيکي يک سيستم : فرض کنيد متغير nAdapters متغيري از نوع long باشد . همچنين شي D3DADAPTER_IDENTIFIER8 يک ساختار است که اطلاعات مربوط به آداپتور را نگه مي دارد . در اينصورت روتين enumerateAdapters بصورت زير خواهد بود :
Dim adapterinfo as D3DADAPTER_IDENTIFIER8
Private Sub EnumerateAdapters
Dim i as integer
nadapters=D3D.Getadaptercount

براي بدست آوردن جزئيات آداپبورها بصورت زير عمل مي کنيم :
for i=0 to nadapters-1
D3D.GetadapterIdentifier i ,0,adapterinfo
نام اين آداپتور بصورت ليستي از کدهاي اسکي است که بايستي آنها را درون يک string قرار دهيم :
for j=0 to 511
name=name & chr$(adapterinfo.description(j)) x
next j
name=replace(name,chr$(0),'' '') x
end sub
بنابراين در متغير name نام آداپتور قرار خواهد گرفت .


? - مشخص کردن نوع Rendering : فرض کنيد شي D3DCAPS8 توانايي rendering آداپتور را نشان دهد . در اينصورت روتين EnumerateDevices بصورت زير خواهد بود :
Private EnumerateDevices
On Local Error resume next
Dim Caps as D3DCAPS8
deviceindex=0 'For Example
D3D.Getdevicecaps deviceindex,D3DDEVTYPE_HAL,caps
if err.number=D3DERR_NOTAVAILABLE then

اگر آداپتور امکان رندر سخت افزاري نداشته باشد در اينصورت :
MsgBox(''Reference Rasterizer(REF)'') x
else
MsgBox(''Hardware Acceleration(HAL)+Reference
Rasterizer(REF)'') x
end if
end sub

3 - شمارش تعداد Mode نمايشي آداپتور :
فرض کنيد در صورت REF بودن امکان رندر ، متغير r=2 و در غيراينصورت
r=1 باشد . همچنين شي D3DDISPLAYMODE اطلاعات مدهاي نمايشي را در خود دارد . همچنين فرض کنيد متغير nModes از نوع longباشد . در اينصورت روتين enumeratedispmodes بصورت زير خواهد بود :
Private Sub EnumerateDispModes(r as Long,n as Long) x
Dim i as integer
Dim mode_tmp as D3DDISPLAYMODE
deviceindex=0 'For Example
nModes=D3D.Getadaptermodecount(deviceindex) x
for i=0 to nModes-1
D3D.EnumAdapterModes(deviceindex,i,mode_tmp) x
ابتدا Mode ها را به دو گروه ?? بيتي و ?? بيتي تقسيم مي کنيم :
if mode_tmp.format=D3DFMT_R8G8B8 or
mode_tmp=D3DFMT_X8R8G8B8 or
mode_tmp=D3DFMT_A8R8G8B8 then
حال چک مي کنيم که device قابل پذيرش و معتبر است يا نه :
if
D3D.checkdevicetype(deviceindex,r,mode_tmp.format,mode_tm
p.format,Flase)>=0 then
MsgBox(mode_tmp.width & ''X'' & mode_tmp.height & ''32 Bit
FMT:'' & mode_tmp.format ) x & ''
end if
else
if D3D.checkdevicetype(deviceindex,r,mode_tmp.format,mode_tm
p.format,Flase)>=0 then
MsgBox(mode_tmp.width & ''X'' & mode_tmp.height & ''16 BitFMT:'' & mode_tmp.format ) x &
end if
end if
next i

4 - مشخص کردن توانايي هاي آداپتور گرافيکي : فرض کنيد در صورت REF بودن امکان رندر ، متغير r=2 و در غيراينصورت r=1 باشد :
Private Sub EnumerateHardware(r as long) x
Dim caps as D3DCAPS8
D3D.Getdevicecaps deviceindex,r,caps
If Caps.MaxActiveLights = -1 Then
MsgBox ''Maximum Active Lights: Unlimited'' x
Else
MsgBox ''Maximum Active Lights: '' & Caps.MaxActiveLights
End If
MsgBox ''Maximum Point Vertex size: '' & Caps.MaxPointSize
MsgBox ''Maximum Texture Size: '' & Caps.MaxTextureWidth
& ''X'' & Caps.MaxTextureHeight
MsgBox ''Maximum Primatives in one call: '' &
Caps.MaxPrimitiveCount
If Caps.TextureCaps And
D3DPTEXTURECAPS_SQUAREONLY Then
MsgBox ''Textures must always be square'' x
End If
If Caps.TextureCaps And D3DPTEXTURECAPS_CUBEMAP
Then
MsgBox ''Device Supports Cube Mapping'' x
End If
If Caps.TextureCaps And
D3DPTEXTURECAPS_VOLUMEMAP Then
MsgBox ''Device Supports Volume Mapping'' x
End If
If Caps.DevCaps And D3DDEVCAPS_PUREDEVICE Then
MsgBox ''Device supports the Pure Device Option'' x
End If
If Caps.DevCaps And
D3DDEVCAPS_HWTRANSFORMANDLIGHT Then
MsgBox ''Device supports hardware transform and lighting'' x
End If
If Caps.DevCaps And D3DDEVCAPS_HWRASTERIZATION
Then
MsgBox ''Device can use Hardware Rasterization'' x
End If
If Caps.Caps2 And D3DCAPS2_CANCALIBRATEGAMMA
Then
MsgBox ''Device can Calibrate Gamma'' x
End If
If Caps.Caps2 And D3DCAPS2_CANRENDERWINDOWED Then
MsgBox ''Device can Render in Windowed Mode'' x
End If
If Caps.Caps2 And D3DCAPS2_FULLSCREENGAMMA Then
MsgBox ''Device can calibrate gamma in fullscreen mode'' x
End If
If Caps.RasterCaps And D3DPRASTERCAPS_FOGRANGE
Then
MsgBox ''Device supports range based fog calculations'' x
End If
If Caps.RasterCaps And D3DPRASTERCAPS_ANISOTROPY
Then
MsgBox ''Device supports Anisotropic Filtering'' x
End If
If Caps.RasterCaps And
D3DPRASTERCAPS_ZBUFFERLESSHSR Then
MsgBox ''Device does not require a Z-Buffer/Depth Buffer'' x
End If


مطلب بعدی   ::  مطلب قبلی

   


 

  يت فجيع در ترکيه: بچه نامشروع را در باربيکيو پختند
  هنجارشکني يا آزاد زيستي
  سامان » قسم » مکّه
  گياه سالادي اسفناج(رژيمي)
  آشنايي با Code Red
  دعا به جهت درد عورت
  حمله هكرهاي ايراني به سايت‌های دانماركي
  نحوه جلوگيري از ثبت UserName در پنجره DialUp
  کنن s80
  چهل سخن
سوالات زوجهاي جوان از يکديگر در زمينه خاطرات
زندون دل » نياز (نماز)
y Mechanic 5.2 رجيستري کامپيوترتون رو پاکسازي کنيد
چغندر BEETS
آشنایی با Microsoft Office 2003
از داخل خانه و از پشت کامپيوتر شخصي تان تعمير کنيد
نواع روشهای انتقال مقادیر بین فرمهای وب در ASP.NET
دومين هيبريد تويوتا
ایمان به خدا
داريوش » بچّه هاي ايران » پرسه
 
صفحه اول  : تقشه سایت : لینک باکس