[  Add to Bookmark  -  Make Home Page   ]      بازگشت به صفحه اول

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


 ItMyTi.Com
جستجو در مطالب و مقالات


لينكدوني

مطالب گذشته
» ماهانه 15هزار مرسوله از طريق ثبت...
» آمار توزيع كارت هوشمند سوخت در كشور..
» برون‌سپاري پروژه‌هاي ICT بدون...
» ابزار شكستن قفل فعال‌سازي ويستا عرضه شد
» نگارش جديد ويروس استورم"...
» پياده‌سازي مديريت منابع سازماني تا...
» "يي‌آي ديجيتال" از شناسايي حفره ...
» موانع صدور گواهي ديجيتال رفع شد
» كانال ديتاي بين استانهاي زنجان و...
» عرضه خودرو شبكه ارتباطي در...
» استفاده ويروسهاي جديد از حافظه‌هاي...
» برنامه‌هاي توليدي بي‌بي‌سي...
» شركت "آدوب" نسخه اينترنتي نرم‌افزار...
» ويروس اينترنتي "رين‌بات" كارشناسان...
» ويروس اينترنتي "رين‌بات" كارشناسان...
» ۱۵‬هزار مرسوله پستي ماهانه باثبت‌نام...
» ماجراي ‪SMS‬هاي سرگردان در شبكه...
» شبكه ايرانسل شش شهر ديگر را دربر مي‌گيرد
» مسائل حقوقي،علت اجرا نشدن توافق...
» خاموش‌بودن موبايل مديران...
» جمع‌آوري امضا براي استيضاح وزير ارتباطات
» پست:اينترنتي ثبت نام كنيد
» نرم‌افزار ضدويروس جديد "مايكروسافت" ..
» در جمهوري استوني انتخابات اينترنتي برگزار مي‌شود
» جوانان ژاپني مي‌گويند تلفن همراه زندگي...
» انجام بازي‌هاي رايانه‌هاي رانندگان را به ...
» دو خبر از حوزه فناوري اطلاعات تهران
» عرضه كوچك‌‏ترين تراشه جهان در بازار مالزي
» رايانه‌اي پاك براي كودكان برگزار مي‌شود
» يك چيني معتاد به اينترنت بعد از هفت روز بازي آنلاين جان خود را از دست داد
» Reaper HPC جديدترين روش خنك كننده رم به بازار عرضه شد
» اينترنت از سايت‌هاي فيشينگ اشباع شده است
» تائید مالی دامنه ir بصورت 100% آنلاین
» مايكروسافت: بايد از موفقيت گوگل در ...
» راه اندازي سيستم هاي جديد سرگرمي ...
» شركت سيمانتك جديدترين ضدویروس...
» كرم تروژان با شيوه اي جديد در شبكه اينترنت
» محاكمه مشاور ارشد شركت امنيتي مك آفي
» ربات انسان‌نما حركات خود را اصلاح مي‌كند
» ويستا از نقص جديد در سيستم امنيتي خود ...

Niksalehi.com


پیوندها

نیک صالحی

نیک بازار

نیک دانلود

اوکسین ادز

آگهی رایگان

ایرانی

فروشگاه ساز مدرن

روز فارسی

پرشین وی

نیک بلاگ

نیک جاب

هو دات آی آر

نیک سایت

درناز

نیک دانلود

نیک لایو تی وی

اینگفا


اینروز

فروشگاه تجریش

نیک نیوز

سایت روز

پولک

تندرست

آی آر پارس

[ August 04, 2005 ] آموزشDirectX-Graphic (قسمت دوم)

iritn.com
از: پرشين بلاگ

موضوع : بدست آوردن مشخصات و تواناييهاي گرافيکي يک سيستم توسط 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




لينك مستقيم |

تمام حق و حقوق محفوظ است محل قرار دادن شمارنده در دست ساخت

کليه حقوق متعلق به سايت MCS-8051.COM ميباشد