1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef REMOTING_HOST_WIN_EVALUATE_D3D_H_
6 #define REMOTING_HOST_WIN_EVALUATE_D3D_H_
7 
8 #include <string>
9 #include <vector>
10 
11 namespace remoting {
12 
13 // Evaluates the D3D capability of the system and sends the results to stdout.
14 // DO NOT call this method within the host process. Only call in an isolated
15 // child process. I.e. from EvaluateCapabilityLocally().
16 int EvaluateD3D();
17 
18 // Evaluates the D3D capability of the system in a separate process. Returns
19 // true if the process succeeded. The capabilities will be stored in |result|.
20 // Note, this is not a cheap call, it uses EvaluateCapability() internally to
21 // spawn a new process, which may take a noticeable amount of time.
22 bool GetD3DCapabilities(std::vector<std::string>* result);
23 
24 // Used to ensure that pulling in the DirectX dependencies and creating a D3D
25 // Device does not result in a crash or system instability.
26 // Note: This is an expensive call as it creates a new process and blocks on it.
27 bool IsD3DAvailable();
28 
29 }  // namespace remoting
30 
31 #endif  // REMOTING_HOST_WIN_EVALUATE_D3D_H_
32