/src/mozilla-central/gfx/vr/service/VRSession.cpp
Line | Count | Source (jump to first uncovered line) |
1 | | #include "VRSession.h" |
2 | | |
3 | | #include "moz_external_vr.h" |
4 | | |
5 | | #if defined(XP_WIN) |
6 | | #include <d3d11.h> |
7 | | #endif // defined(XP_WIN) |
8 | | |
9 | | using namespace mozilla::gfx; |
10 | | |
11 | | VRSession::VRSession() |
12 | 0 | { |
13 | 0 |
|
14 | 0 | } |
15 | | |
16 | | VRSession::~VRSession() |
17 | 0 | { |
18 | 0 |
|
19 | 0 | } |
20 | | |
21 | | #if defined(XP_WIN) |
22 | | bool |
23 | | VRSession::CreateD3DContext(RefPtr<ID3D11Device> aDevice) |
24 | | { |
25 | | if (!mDevice) { |
26 | | if (!aDevice) { |
27 | | NS_WARNING("OpenVRSession::CreateD3DObjects failed to get a D3D11Device"); |
28 | | return false; |
29 | | } |
30 | | if (FAILED(aDevice->QueryInterface(__uuidof(ID3D11Device1), getter_AddRefs(mDevice)))) { |
31 | | NS_WARNING("OpenVRSession::CreateD3DObjects failed to get a D3D11Device1"); |
32 | | return false; |
33 | | } |
34 | | } |
35 | | if (!mContext) { |
36 | | mDevice->GetImmediateContext1(getter_AddRefs(mContext)); |
37 | | if (!mContext) { |
38 | | NS_WARNING("OpenVRSession::CreateD3DObjects failed to get an immediate context"); |
39 | | return false; |
40 | | } |
41 | | } |
42 | | if (!mDeviceContextState) { |
43 | | D3D_FEATURE_LEVEL featureLevels[] { |
44 | | D3D_FEATURE_LEVEL_11_1, |
45 | | D3D_FEATURE_LEVEL_11_0 |
46 | | }; |
47 | | mDevice->CreateDeviceContextState(0, |
48 | | featureLevels, |
49 | | 2, |
50 | | D3D11_SDK_VERSION, |
51 | | __uuidof(ID3D11Device1), |
52 | | nullptr, |
53 | | getter_AddRefs(mDeviceContextState)); |
54 | | } |
55 | | if (!mDeviceContextState) { |
56 | | NS_WARNING("VRDisplayHost::CreateD3DObjects failed to get a D3D11DeviceContextState"); |
57 | | return false; |
58 | | } |
59 | | return true; |
60 | | } |
61 | | |
62 | | ID3D11Device1* |
63 | | VRSession::GetD3DDevice() |
64 | | { |
65 | | return mDevice; |
66 | | } |
67 | | |
68 | | ID3D11DeviceContext1* |
69 | | VRSession::GetD3DDeviceContext() |
70 | | { |
71 | | return mContext; |
72 | | } |
73 | | |
74 | | ID3DDeviceContextState* |
75 | | VRSession::GetD3DDeviceContextState() |
76 | | { |
77 | | return mDeviceContextState; |
78 | | } |
79 | | |
80 | | #endif // defined(XP_WIN) |