[WorldWind 학습] 3.Device 객체
9297 단어 device
Device 클래스는 DirectX의 모든 그림 그리기 작업을 완성하는 데 사용됩니다. 우리는 이 클래스를 도형 카드로 가상할 수 있습니다. 장면의 모든 다른 도형 대상은 Device에 의존하고 컴퓨터에 여러 개의 Device 대상이 있을 수 있습니다.글로벌 변수에서 다음과 같은 코드로 드로잉 장치를 정의합니다. private Device mDevice3d;//드로잉 장치 정의
1 private void InitializeGraphics()
2 {
3 // Set up our presentation parameters
4 m_presentParams = new PresentParameters();
5
6 m_presentParams.Windowed = true;// Windows
7 m_presentParams.SwapEffect = SwapEffect.Discard;//
8 m_presentParams.AutoDepthStencilFormat = DepthFormat.D16;// 9 m_presentParams.EnableAutoDepthStencil = true;
10
11 if(!World.Settings.VSync)
12 // Disable wait for vertical retrace (higher frame rate at the expense of tearing)
13 m_presentParams.PresentationInterval = PresentInterval.Immediate;
14
15 int adapterOrdinal = 0;
16 try
17 {
18 // Store the default adapter
19 adapterOrdinal = Manager.Adapters.Default.Adapter;
20 }
21 catch
22 {
23 // User probably needs to upgrade DirectX or install a 3D capable graphics adapter
24 throw new NotAvailableException();
25 }
26
27 DeviceType dType = DeviceType.Hardware;
28
29 foreach(AdapterInformation ai in Manager.Adapters)
30 {
31 if(ai.Information.Description.IndexOf("NVPerfHUD") >= 0)
32 {
33 adapterOrdinal = ai.Adapter;
34 dType = DeviceType.Reference;
35 }
36 }
37 CreateFlags flags = CreateFlags.SoftwareVertexProcessing;
38
39 // Check to see if we can use a pure hardware m_Device3d
40 Caps caps = Manager.GetDeviceCaps(adapterOrdinal, DeviceType.Hardware);
41
42 // Do we support hardware vertex processing?
43 if(caps.DeviceCaps.SupportsHardwareTransformAndLight)
44 // // Replace the software vertex processing
45 flags = CreateFlags.HardwareVertexProcessing;
46
47 // Use multi-threading for now - TODO: See if the code can be changed such that this isn't necessary (Texture Loading for example)
48 flags |= CreateFlags.MultiThreaded | CreateFlags.FpuPreserve;
49
50 try
51 {
52 // Create our m_Device3d device
53 m_Device3d = new Device(adapterOrdinal, dType, this, flags, m_presentParams);
54 }
55 catch( Microsoft.DirectX.DirectXException )
56 {
57 throw new NotSupportedException("Unable to create the Direct3D m_Device3d.");
58 }
59
60 // Hook the m_Device3d reset event
61 m_Device3d.DeviceReset += new EventHandler(OnDeviceReset);
62 m_Device3d.DeviceResizing += new CancelEventHandler(m_Device3d_DeviceResizing);
63 OnDeviceReset(m_Device3d, null);
64 }
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[WorldWind 학습] 3.Device 객체먼저 Device 클래스를 소개합니다. Device는 using Microsoft에 있습니다.DirectX.Direct3D;네임스페이스 아래. Device 클래스는 DirectX의 모든 그림 그리기 작업을 완성하는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.