Coverage Report

Created: 2018-09-25 14:53

/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)