显示显卡的信息
??1using?System;
??2using?System.Drawing;
??3using?System.Collections;
??4using?System.ComponentModel;
??5using?System.Windows.Forms;
??6using?System.Data;
??7//?添加自定義的命名空間。
??8using?DxVBLib;
??9
?10namespace?DirectXShowCard
?11{
?12????/**////?<summary>
?13????///?顯示顯卡的信息。
?14????///?</summary>
?15????public?class?Form1?:?System.Windows.Forms.Form
?16????{
?17????????private?System.Windows.Forms.Button?button1;
?18????????private?System.Windows.Forms.RichTextBox?richTextBox1;
?19????????/**////?<summary>
?20????????///?必需的設計器變量。
?21????????///?</summary>
?22????????private?System.ComponentModel.Container?components?=?null;
?23
?24????????public?Form1()
?25????????{
?26????????????//?Windows?窗體設計器支持所必需的
?27????????????InitializeComponent();
?28????????????//?TODO:?在?InitializeComponent?調用后添加任何構造函數代碼
?29????????}
?30????????/**////?<summary>
?31????????///?清理所有正在使用的資源。
?32????????///?</summary>
?33????????protected?override?void?Dispose(?bool?disposing?)
?34????????{
?35????????????if(?disposing?)
?36????????????{
?37????????????????if?(components?!=?null)
?38????????????????{
?39????????????????????components.Dispose();
?40????????????????}
?41????????????}
?42????????????base.Dispose(?disposing?);
?43????????}
?44
?45????????Windows?Form?Designer?generated?code#region?Windows?Form?Designer?generated?code
?46????????/**////?<summary>
?47????????///?設計器支持所需的方法?-?不要使用代碼編輯器修改
?48????????///?此方法的內容。
?49????????///?</summary>
?50????????private?void?InitializeComponent()
?51????????{
?52????????????this.button1?=?new?System.Windows.Forms.Button();
?53????????????this.richTextBox1?=?new?System.Windows.Forms.RichTextBox();
?54????????????this.SuspendLayout();
?55????????????//?button1
?56????????????this.button1.Location?=?new?System.Drawing.Point(167,?264);
?57????????????this.button1.Name?=?"button1";
?58????????????this.button1.TabIndex?=?0;
?59????????????this.button1.Text?=?"顯示";
?60????????????this.button1.TextAlign?=?System.Drawing.ContentAlignment.TopCenter;
?61????????????this.button1.Click?+=?new?System.EventHandler(this.button1_Click);
?62????????????//?richTextBox1
?63????????????this.richTextBox1.Dock?=?System.Windows.Forms.DockStyle.Top;
?64????????????this.richTextBox1.Name?=?"richTextBox1";
?65????????????this.richTextBox1.ScrollBars?=?System.Windows.Forms.RichTextBoxScrollBars.ForcedBoth;
?66????????????this.richTextBox1.Size?=?new?System.Drawing.Size(408,?256);
?67????????????this.richTextBox1.TabIndex?=?1;
?68????????????this.richTextBox1.Text?=?"";
?69????????????this.richTextBox1.WordWrap?=?false;
?70????????????//?Form1
?71????????????this.AutoScaleBaseSize?=?new?System.Drawing.Size(8,?18);
?72????????????this.ClientSize?=?new?System.Drawing.Size(408,?296);
?73????????????this.Controls.AddRange(new?System.Windows.Forms.Control[]?{
?74????????????????this.richTextBox1,
?75????????????????this.button1});
?76????????????this.FormBorderStyle?=
?77????????????????System.Windows.Forms.FormBorderStyle.FixedDialog;
?78????????????this.MaximizeBox?=?false;
?79????????????this.Name?=?"Form1";
?80????????????this.StartPosition?=
?81????????????????System.Windows.Forms.FormStartPosition.CenterScreen;
?82????????????this.Text?=?"顯示顯卡的信息";
?83????????????this.ResumeLayout(false);
?84
?85????????}
?86????????#endregion
?87
?88????????/**////?<summary>
?89????????///?應用程序的主入口點。
?90????????///?</summary>
?91????????[STAThread]
?92????????static?void?Main()
?93????????{
?94????????????Application.Run(new?Form1());
?95????????}
?96????????//?添加自定義的私有變量。
?97????????private?static?DirectX7?DirectX;
?98????????private?void?button1_Click(object?sender,?System.EventArgs?e)
?99????????{
100????????????DirectX?=?new?DirectX7();
101????????????DirectDrawEnum?ddEnum;
102????????????string?guid;
103
104????????????ddEnum?=?DirectX.GetDDEnum();
105????????????richTextBox1.Text?=?"顯卡信息:\n";
106????????????for?(int?i?=?1;?i?<=?ddEnum.GetCount();?i++)
107????????????{
108????????????????richTextBox1.Text?+=?"顯卡號碼:"?+?i.ToString()?+?"\n";
109????????????????richTextBox1.Text?+=?"描述:????"?+?ddEnum.GetDescription(i)?+?"\n";
110????????????????richTextBox1.Text?+=?"顯卡名稱:"?+?ddEnum.GetName(i)?+?"\n";
111????????????????guid?=?ddEnum.GetGuid(i);
112????????????????if(guid?==?"")
113????????????????????richTextBox1.Text?+=?"Guid號碼:無\n";
114????????????????else
115????????????????????richTextBox1.Text?+=?"Guid號碼:"?+?ddEnum.GetGuid(i)?+?"\n";
116????????????????GetDDCaps(guid);
117????????????????GetD3DDevices(guid);
118????????????????GetDisplayModes(guid);
119????????????}
120????????}
121????????private?void?GetDDCaps(string?guid)
122????????{
123????????????DirectDraw7?DirectDraw;
124????????????DDCAPS?hwCaps?=?new?DDCAPS();????????//?硬件信息
125????????????DDCAPS?helCaps?=?new?DDCAPS();????????//?軟件信息
126
127????????????DirectDraw?=?DirectX.DirectDrawCreate(guid);
128????????????DirectDraw.GetCaps(ref?hwCaps,?ref?helCaps);
129????????????richTextBox1.Text?+=?"\n硬件信息:\n";
130????????????richTextBox1.Text?+=?"????總的顯存:??"?+?hwCaps.lVidMemTotal.ToString()?+?"\n";
131????????????richTextBox1.Text?+=?"????可用的顯存:"?+?hwCaps.lVidMemFree.ToString()?+?"\n";
132
133????????????//?支持的調色板。
134????????????CONST_DDPCAPSFLAGS?value?=?hwCaps.lPalCaps;
135????????????if?(value?==?0)
136????????????????richTextBox1.Text?+=?"????沒有調色板。\n";
137????????????if?((value?&?CONST_DDPCAPSFLAGS.DDPCAPS_1BIT)?>?0)
138????????????????richTextBox1.Text?+=?"????支持?1?Bit調色板。\n";
139????????????if?((value?&?CONST_DDPCAPSFLAGS.DDPCAPS_2BIT)?>?0)
140????????????????richTextBox1.Text?+=?"????支持?2?Bit調色板。\n";
141????????????if?((value?&?CONST_DDPCAPSFLAGS.DDPCAPS_8BIT)?>?0)
142????????????????richTextBox1.Text?+=?"????支持?8?Bit調色板。\n";
143????????????if?((value?&?CONST_DDPCAPSFLAGS.DDPCAPS_8BITENTRIES)?>?0)
144????????????????richTextBox1.Text?+=?"????支持?8?Bit?Entries?調色板。\n";
145????????????if?((value?&?CONST_DDPCAPSFLAGS.DDPCAPS_ALLOW256)?>?0)
146????????????????richTextBox1.Text?+=?"????支持?256色調色板。\n";
147
148????????????//?是否支持gamma?ramp接口
149????????????if?(((int)hwCaps.ddsCaps.lCaps2?&
150?????????????????(int)CONST_DDCAPS2FLAGS.DDCAPS2_CANCALIBRATEGAMMA)?>?0)
151????????????????richTextBox1.Text?+=?"????支持gamma連接。\n";
152????????????else
153????????????????richTextBox1.Text?+=?"????不支持gamma連接。\n";
154????????}
155
156????????private?void?GetD3DDevices(string?guid)
157????????{
158????????????Direct3DEnumDevices?d3dEnum;
159????????????D3DDEVICEDESC7?hwDesc?=?new?D3DDEVICEDESC7();
160????????????DirectDraw7?DirectDraw;
161????????????Direct3D7?d3d;
162
163????????????DirectDraw?=?DirectX.DirectDrawCreate(guid);
164????????????d3d?=?DirectDraw.GetDirect3D();
165????????????richTextBox1.Text?+=?"\nD3D設備信息:\n";
166????????????d3dEnum?=?d3d.GetDevicesEnum();
167????????????for?(int?i?=?1;?i?<=?d3dEnum.GetCount();?i++)
168????????????{
169????????????????d3dEnum.GetDesc(i,?ref?hwDesc);
170????????????????richTextBox1.Text?+=?"????描述:"?+?d3dEnum.GetDescription(i)?+?"\n";
171????????????????richTextBox1.Text?+=?"????名稱:"?+?d3dEnum.GetName(i)?+?"\n";
172????????????????richTextBox1.Text?+=?"????Guid:"?+?d3dEnum.GetGuid(i)?+?"\n";
173????????????????richTextBox1.Text?+=?"????最大紋理高度:"?+
174????????????????????hwDesc.lMaxTextureHeight.ToString()?+?"\n";
175????????????????richTextBox1.Text?+=?"????最大紋理寬度:"?+
176????????????????????hwDesc.lMaxTextureWidth.ToString()?+?"\n";
177
178????????????????if?((hwDesc.lDeviceRenderBitDepth?&?(int)CONST_DDBITDEPTHFLAGS.DDBD_8)?>?0)
179????????????????????richTextBox1.Text?+=?"????支持8位渲染。\n";
180????????????????if?((hwDesc.lDeviceRenderBitDepth?&?(int)CONST_DDBITDEPTHFLAGS.DDBD_16)?>?0)
181????????????????????richTextBox1.Text?+=?"????支持16位渲染。\n";
182????????????????if?((hwDesc.lDeviceRenderBitDepth?&?(int)CONST_DDBITDEPTHFLAGS.DDBD_24)?>?0)
183????????????????????richTextBox1.Text?+=?"????支持24位渲染。\n";
184????????????????if?((hwDesc.lDeviceRenderBitDepth?&?(int)CONST_DDBITDEPTHFLAGS.DDBD_32)?>?0)
185????????????????????richTextBox1.Text?+=?"????支持32位渲染。\n";
186
187????????????????if?((hwDesc.lDeviceZBufferBitDepth?&?(int)CONST_DDBITDEPTHFLAGS.DDBD_8)?>?0)
188????????????????????richTextBox1.Text?+=?"????支持8比特的Z緩存。\n";
189????????????????if?((hwDesc.lDeviceZBufferBitDepth?&?(int)CONST_DDBITDEPTHFLAGS.DDBD_16)?>?0)
190????????????????????richTextBox1.Text?+=?"????支持16比特的Z緩存。\n";
191????????????????if?((hwDesc.lDeviceZBufferBitDepth?&?(int)(int)CONST_DDBITDEPTHFLAGS.DDBD_24)?>?0)
192????????????????????richTextBox1.Text?+=?"????支持24比特的Z緩存。\n";
193????????????????if?((hwDesc.lDeviceZBufferBitDepth?&?(int)CONST_DDBITDEPTHFLAGS.DDBD_32)?>?0)
194????????????????????richTextBox1.Text?+=?"????支持32比特的Z緩存。\n";
195????????????????if?(hwDesc.lDeviceZBufferBitDepth?==?0)
196????????????????????richTextBox1.Text?+=?"????不支持Z緩存。\n";
197
198????????????????if?((hwDesc.lDevCaps?&?CONST_D3DDEVICEDESCCAPS.D3DDEVCAPS_TEXTURENONLOCALVIDMEM)?>?0)
199????????????????????richTextBox1.Text?+=?"????支持AGP紋理。\n";
200????????????????if?((hwDesc.lDevCaps?&?CONST_D3DDEVICEDESCCAPS.D3DDEVCAPS_SORTDECREASINGZ)?>?0)
201????????????????????richTextBox1.Text?+=?"????IM三角必須安遞減深度排序。\n";
202????????????????if?((hwDesc.lDevCaps?&?CONST_D3DDEVICEDESCCAPS.D3DDEVCAPS_SORTEXACT)?>?0)
203????????????????????richTextBox1.Text?+=?"????IM三角必須完全排序。\n";
204????????????????if?((hwDesc.lDevCaps?&?CONST_D3DDEVICEDESCCAPS.D3DDEVCAPS_SORTINCREASINGZ)?>?0)
205????????????????????richTextBox1.Text?+=?"????IM三角必須安遞增深度排序。\n";
206????????????????if?((hwDesc.lDevCaps?&?CONST_D3DDEVICEDESCCAPS.D3DDEVCAPS_TEXTUREVIDEOMEMORY)?>?0)
207????????????????????richTextBox1.Text?+=?"????IM三角可以使用顯卡內存存儲材質。\n";
208????????????}
209????????}
210????????//?取得顯示模式信息。
211????????public?void?GetDisplayModes(string?guid)
212????????{
213????????????DirectDrawEnumModes?DisplayModesEnum;
214????????????DDSURFACEDESC2?ddsd2?=?new?DDSURFACEDESC2();
215????????????DirectDraw7?DirectDraw;
216
217????????????DirectDraw?=?DirectX.DirectDrawCreate(guid);
218????????????DisplayModesEnum?=?DirectDraw.GetDisplayModesEnum(0,?ref?ddsd2);
219????????????richTextBox1.Text?+=?"\n顯示模式信息:\n";
220????????????//?列舉支持的顯示模式。
221????????????for?(int?i?=?1;?i?<=?DisplayModesEnum.GetCount();?i++)
222????????????{
223????????????????DisplayModesEnum.GetItem(i,?ref?ddsd2);
224????????????????richTextBox1.Text?+=?"????顯示模式["?+?i.ToString()?+?"]:";
225????????????????richTextBox1.Text?+=?"寬度["?+?ddsd2.lWidth.ToString()?+?"],";
226????????????????richTextBox1.Text?+=?"高度["?+?ddsd2.lHeight.ToString()?+?"],";
227????????????????richTextBox1.Text?+=?"每象素的比特數["?+?ddsd2.ddpfPixelFormat.lRGBBitCount.ToString()?+?"],";
228????????????????richTextBox1.Text?+=?"刷新頻率["?+?ddsd2.lRefreshRate.ToString()??+?"]。"?+?"\n";
229????????????}
230????????}
231????}
232}
233
Interop.DxVBLib.rar
??2using?System.Drawing;
??3using?System.Collections;
??4using?System.ComponentModel;
??5using?System.Windows.Forms;
??6using?System.Data;
??7//?添加自定義的命名空間。
??8using?DxVBLib;
??9
?10namespace?DirectXShowCard
?11{
?12????/**////?<summary>
?13????///?顯示顯卡的信息。
?14????///?</summary>
?15????public?class?Form1?:?System.Windows.Forms.Form
?16????{
?17????????private?System.Windows.Forms.Button?button1;
?18????????private?System.Windows.Forms.RichTextBox?richTextBox1;
?19????????/**////?<summary>
?20????????///?必需的設計器變量。
?21????????///?</summary>
?22????????private?System.ComponentModel.Container?components?=?null;
?23
?24????????public?Form1()
?25????????{
?26????????????//?Windows?窗體設計器支持所必需的
?27????????????InitializeComponent();
?28????????????//?TODO:?在?InitializeComponent?調用后添加任何構造函數代碼
?29????????}
?30????????/**////?<summary>
?31????????///?清理所有正在使用的資源。
?32????????///?</summary>
?33????????protected?override?void?Dispose(?bool?disposing?)
?34????????{
?35????????????if(?disposing?)
?36????????????{
?37????????????????if?(components?!=?null)
?38????????????????{
?39????????????????????components.Dispose();
?40????????????????}
?41????????????}
?42????????????base.Dispose(?disposing?);
?43????????}
?44
?45????????Windows?Form?Designer?generated?code#region?Windows?Form?Designer?generated?code
?46????????/**////?<summary>
?47????????///?設計器支持所需的方法?-?不要使用代碼編輯器修改
?48????????///?此方法的內容。
?49????????///?</summary>
?50????????private?void?InitializeComponent()
?51????????{
?52????????????this.button1?=?new?System.Windows.Forms.Button();
?53????????????this.richTextBox1?=?new?System.Windows.Forms.RichTextBox();
?54????????????this.SuspendLayout();
?55????????????//?button1
?56????????????this.button1.Location?=?new?System.Drawing.Point(167,?264);
?57????????????this.button1.Name?=?"button1";
?58????????????this.button1.TabIndex?=?0;
?59????????????this.button1.Text?=?"顯示";
?60????????????this.button1.TextAlign?=?System.Drawing.ContentAlignment.TopCenter;
?61????????????this.button1.Click?+=?new?System.EventHandler(this.button1_Click);
?62????????????//?richTextBox1
?63????????????this.richTextBox1.Dock?=?System.Windows.Forms.DockStyle.Top;
?64????????????this.richTextBox1.Name?=?"richTextBox1";
?65????????????this.richTextBox1.ScrollBars?=?System.Windows.Forms.RichTextBoxScrollBars.ForcedBoth;
?66????????????this.richTextBox1.Size?=?new?System.Drawing.Size(408,?256);
?67????????????this.richTextBox1.TabIndex?=?1;
?68????????????this.richTextBox1.Text?=?"";
?69????????????this.richTextBox1.WordWrap?=?false;
?70????????????//?Form1
?71????????????this.AutoScaleBaseSize?=?new?System.Drawing.Size(8,?18);
?72????????????this.ClientSize?=?new?System.Drawing.Size(408,?296);
?73????????????this.Controls.AddRange(new?System.Windows.Forms.Control[]?{
?74????????????????this.richTextBox1,
?75????????????????this.button1});
?76????????????this.FormBorderStyle?=
?77????????????????System.Windows.Forms.FormBorderStyle.FixedDialog;
?78????????????this.MaximizeBox?=?false;
?79????????????this.Name?=?"Form1";
?80????????????this.StartPosition?=
?81????????????????System.Windows.Forms.FormStartPosition.CenterScreen;
?82????????????this.Text?=?"顯示顯卡的信息";
?83????????????this.ResumeLayout(false);
?84
?85????????}
?86????????#endregion
?87
?88????????/**////?<summary>
?89????????///?應用程序的主入口點。
?90????????///?</summary>
?91????????[STAThread]
?92????????static?void?Main()
?93????????{
?94????????????Application.Run(new?Form1());
?95????????}
?96????????//?添加自定義的私有變量。
?97????????private?static?DirectX7?DirectX;
?98????????private?void?button1_Click(object?sender,?System.EventArgs?e)
?99????????{
100????????????DirectX?=?new?DirectX7();
101????????????DirectDrawEnum?ddEnum;
102????????????string?guid;
103
104????????????ddEnum?=?DirectX.GetDDEnum();
105????????????richTextBox1.Text?=?"顯卡信息:\n";
106????????????for?(int?i?=?1;?i?<=?ddEnum.GetCount();?i++)
107????????????{
108????????????????richTextBox1.Text?+=?"顯卡號碼:"?+?i.ToString()?+?"\n";
109????????????????richTextBox1.Text?+=?"描述:????"?+?ddEnum.GetDescription(i)?+?"\n";
110????????????????richTextBox1.Text?+=?"顯卡名稱:"?+?ddEnum.GetName(i)?+?"\n";
111????????????????guid?=?ddEnum.GetGuid(i);
112????????????????if(guid?==?"")
113????????????????????richTextBox1.Text?+=?"Guid號碼:無\n";
114????????????????else
115????????????????????richTextBox1.Text?+=?"Guid號碼:"?+?ddEnum.GetGuid(i)?+?"\n";
116????????????????GetDDCaps(guid);
117????????????????GetD3DDevices(guid);
118????????????????GetDisplayModes(guid);
119????????????}
120????????}
121????????private?void?GetDDCaps(string?guid)
122????????{
123????????????DirectDraw7?DirectDraw;
124????????????DDCAPS?hwCaps?=?new?DDCAPS();????????//?硬件信息
125????????????DDCAPS?helCaps?=?new?DDCAPS();????????//?軟件信息
126
127????????????DirectDraw?=?DirectX.DirectDrawCreate(guid);
128????????????DirectDraw.GetCaps(ref?hwCaps,?ref?helCaps);
129????????????richTextBox1.Text?+=?"\n硬件信息:\n";
130????????????richTextBox1.Text?+=?"????總的顯存:??"?+?hwCaps.lVidMemTotal.ToString()?+?"\n";
131????????????richTextBox1.Text?+=?"????可用的顯存:"?+?hwCaps.lVidMemFree.ToString()?+?"\n";
132
133????????????//?支持的調色板。
134????????????CONST_DDPCAPSFLAGS?value?=?hwCaps.lPalCaps;
135????????????if?(value?==?0)
136????????????????richTextBox1.Text?+=?"????沒有調色板。\n";
137????????????if?((value?&?CONST_DDPCAPSFLAGS.DDPCAPS_1BIT)?>?0)
138????????????????richTextBox1.Text?+=?"????支持?1?Bit調色板。\n";
139????????????if?((value?&?CONST_DDPCAPSFLAGS.DDPCAPS_2BIT)?>?0)
140????????????????richTextBox1.Text?+=?"????支持?2?Bit調色板。\n";
141????????????if?((value?&?CONST_DDPCAPSFLAGS.DDPCAPS_8BIT)?>?0)
142????????????????richTextBox1.Text?+=?"????支持?8?Bit調色板。\n";
143????????????if?((value?&?CONST_DDPCAPSFLAGS.DDPCAPS_8BITENTRIES)?>?0)
144????????????????richTextBox1.Text?+=?"????支持?8?Bit?Entries?調色板。\n";
145????????????if?((value?&?CONST_DDPCAPSFLAGS.DDPCAPS_ALLOW256)?>?0)
146????????????????richTextBox1.Text?+=?"????支持?256色調色板。\n";
147
148????????????//?是否支持gamma?ramp接口
149????????????if?(((int)hwCaps.ddsCaps.lCaps2?&
150?????????????????(int)CONST_DDCAPS2FLAGS.DDCAPS2_CANCALIBRATEGAMMA)?>?0)
151????????????????richTextBox1.Text?+=?"????支持gamma連接。\n";
152????????????else
153????????????????richTextBox1.Text?+=?"????不支持gamma連接。\n";
154????????}
155
156????????private?void?GetD3DDevices(string?guid)
157????????{
158????????????Direct3DEnumDevices?d3dEnum;
159????????????D3DDEVICEDESC7?hwDesc?=?new?D3DDEVICEDESC7();
160????????????DirectDraw7?DirectDraw;
161????????????Direct3D7?d3d;
162
163????????????DirectDraw?=?DirectX.DirectDrawCreate(guid);
164????????????d3d?=?DirectDraw.GetDirect3D();
165????????????richTextBox1.Text?+=?"\nD3D設備信息:\n";
166????????????d3dEnum?=?d3d.GetDevicesEnum();
167????????????for?(int?i?=?1;?i?<=?d3dEnum.GetCount();?i++)
168????????????{
169????????????????d3dEnum.GetDesc(i,?ref?hwDesc);
170????????????????richTextBox1.Text?+=?"????描述:"?+?d3dEnum.GetDescription(i)?+?"\n";
171????????????????richTextBox1.Text?+=?"????名稱:"?+?d3dEnum.GetName(i)?+?"\n";
172????????????????richTextBox1.Text?+=?"????Guid:"?+?d3dEnum.GetGuid(i)?+?"\n";
173????????????????richTextBox1.Text?+=?"????最大紋理高度:"?+
174????????????????????hwDesc.lMaxTextureHeight.ToString()?+?"\n";
175????????????????richTextBox1.Text?+=?"????最大紋理寬度:"?+
176????????????????????hwDesc.lMaxTextureWidth.ToString()?+?"\n";
177
178????????????????if?((hwDesc.lDeviceRenderBitDepth?&?(int)CONST_DDBITDEPTHFLAGS.DDBD_8)?>?0)
179????????????????????richTextBox1.Text?+=?"????支持8位渲染。\n";
180????????????????if?((hwDesc.lDeviceRenderBitDepth?&?(int)CONST_DDBITDEPTHFLAGS.DDBD_16)?>?0)
181????????????????????richTextBox1.Text?+=?"????支持16位渲染。\n";
182????????????????if?((hwDesc.lDeviceRenderBitDepth?&?(int)CONST_DDBITDEPTHFLAGS.DDBD_24)?>?0)
183????????????????????richTextBox1.Text?+=?"????支持24位渲染。\n";
184????????????????if?((hwDesc.lDeviceRenderBitDepth?&?(int)CONST_DDBITDEPTHFLAGS.DDBD_32)?>?0)
185????????????????????richTextBox1.Text?+=?"????支持32位渲染。\n";
186
187????????????????if?((hwDesc.lDeviceZBufferBitDepth?&?(int)CONST_DDBITDEPTHFLAGS.DDBD_8)?>?0)
188????????????????????richTextBox1.Text?+=?"????支持8比特的Z緩存。\n";
189????????????????if?((hwDesc.lDeviceZBufferBitDepth?&?(int)CONST_DDBITDEPTHFLAGS.DDBD_16)?>?0)
190????????????????????richTextBox1.Text?+=?"????支持16比特的Z緩存。\n";
191????????????????if?((hwDesc.lDeviceZBufferBitDepth?&?(int)(int)CONST_DDBITDEPTHFLAGS.DDBD_24)?>?0)
192????????????????????richTextBox1.Text?+=?"????支持24比特的Z緩存。\n";
193????????????????if?((hwDesc.lDeviceZBufferBitDepth?&?(int)CONST_DDBITDEPTHFLAGS.DDBD_32)?>?0)
194????????????????????richTextBox1.Text?+=?"????支持32比特的Z緩存。\n";
195????????????????if?(hwDesc.lDeviceZBufferBitDepth?==?0)
196????????????????????richTextBox1.Text?+=?"????不支持Z緩存。\n";
197
198????????????????if?((hwDesc.lDevCaps?&?CONST_D3DDEVICEDESCCAPS.D3DDEVCAPS_TEXTURENONLOCALVIDMEM)?>?0)
199????????????????????richTextBox1.Text?+=?"????支持AGP紋理。\n";
200????????????????if?((hwDesc.lDevCaps?&?CONST_D3DDEVICEDESCCAPS.D3DDEVCAPS_SORTDECREASINGZ)?>?0)
201????????????????????richTextBox1.Text?+=?"????IM三角必須安遞減深度排序。\n";
202????????????????if?((hwDesc.lDevCaps?&?CONST_D3DDEVICEDESCCAPS.D3DDEVCAPS_SORTEXACT)?>?0)
203????????????????????richTextBox1.Text?+=?"????IM三角必須完全排序。\n";
204????????????????if?((hwDesc.lDevCaps?&?CONST_D3DDEVICEDESCCAPS.D3DDEVCAPS_SORTINCREASINGZ)?>?0)
205????????????????????richTextBox1.Text?+=?"????IM三角必須安遞增深度排序。\n";
206????????????????if?((hwDesc.lDevCaps?&?CONST_D3DDEVICEDESCCAPS.D3DDEVCAPS_TEXTUREVIDEOMEMORY)?>?0)
207????????????????????richTextBox1.Text?+=?"????IM三角可以使用顯卡內存存儲材質。\n";
208????????????}
209????????}
210????????//?取得顯示模式信息。
211????????public?void?GetDisplayModes(string?guid)
212????????{
213????????????DirectDrawEnumModes?DisplayModesEnum;
214????????????DDSURFACEDESC2?ddsd2?=?new?DDSURFACEDESC2();
215????????????DirectDraw7?DirectDraw;
216
217????????????DirectDraw?=?DirectX.DirectDrawCreate(guid);
218????????????DisplayModesEnum?=?DirectDraw.GetDisplayModesEnum(0,?ref?ddsd2);
219????????????richTextBox1.Text?+=?"\n顯示模式信息:\n";
220????????????//?列舉支持的顯示模式。
221????????????for?(int?i?=?1;?i?<=?DisplayModesEnum.GetCount();?i++)
222????????????{
223????????????????DisplayModesEnum.GetItem(i,?ref?ddsd2);
224????????????????richTextBox1.Text?+=?"????顯示模式["?+?i.ToString()?+?"]:";
225????????????????richTextBox1.Text?+=?"寬度["?+?ddsd2.lWidth.ToString()?+?"],";
226????????????????richTextBox1.Text?+=?"高度["?+?ddsd2.lHeight.ToString()?+?"],";
227????????????????richTextBox1.Text?+=?"每象素的比特數["?+?ddsd2.ddpfPixelFormat.lRGBBitCount.ToString()?+?"],";
228????????????????richTextBox1.Text?+=?"刷新頻率["?+?ddsd2.lRefreshRate.ToString()??+?"]。"?+?"\n";
229????????????}
230????????}
231????}
232}
233
Interop.DxVBLib.rar
轉載于:https://www.cnblogs.com/gofficer/archive/2007/08/23/866671.html
總結