test_environment.h revision 8205d901f17b1c76d89c956be235cf4e7a20a546
134888cfbdcd1769789e922ed81f6f997073120baTony Barbour#ifndef TEST_ENVIRONMENT_H
234888cfbdcd1769789e922ed81f6f997073120baTony Barbour#define TEST_ENVIRONMENT_H
39cc421eb545767e22fd723dc573a7a3225261b1cCourtney Goeltzenleuchter#include "vktestbinding.h"
49cc421eb545767e22fd723dc573a7a3225261b1cCourtney Goeltzenleuchter#include <vkWsiX11Ext.h>
534888cfbdcd1769789e922ed81f6f997073120baTony Barbour
69cc421eb545767e22fd723dc573a7a3225261b1cCourtney Goeltzenleuchternamespace vk_testing {
734888cfbdcd1769789e922ed81f6f997073120baTony Barbourclass Environment : public ::testing::Environment {
834888cfbdcd1769789e922ed81f6f997073120baTony Barbourpublic:
934888cfbdcd1769789e922ed81f6f997073120baTony Barbour    Environment();
1034888cfbdcd1769789e922ed81f6f997073120baTony Barbour
1134888cfbdcd1769789e922ed81f6f997073120baTony Barbour    bool parse_args(int argc, char **argv);
1234888cfbdcd1769789e922ed81f6f997073120baTony Barbour
1334888cfbdcd1769789e922ed81f6f997073120baTony Barbour    virtual void SetUp();
1434888cfbdcd1769789e922ed81f6f997073120baTony Barbour    virtual void X11SetUp();
1534888cfbdcd1769789e922ed81f6f997073120baTony Barbour    virtual void TearDown();
1634888cfbdcd1769789e922ed81f6f997073120baTony Barbour    xcb_connection_t         *m_connection;
1734888cfbdcd1769789e922ed81f6f997073120baTony Barbour    xcb_screen_t             *m_screen;
1834888cfbdcd1769789e922ed81f6f997073120baTony Barbour
1934888cfbdcd1769789e922ed81f6f997073120baTony Barbour    const std::vector<Device *> &devices() { return devs_; }
2034888cfbdcd1769789e922ed81f6f997073120baTony Barbour    Device &default_device() { return *(devs_[default_dev_]); }
218205d901f17b1c76d89c956be235cf4e7a20a546Tony Barbour    VkPhysicalDevice gpus[16];
2234888cfbdcd1769789e922ed81f6f997073120baTony Barbour
2334888cfbdcd1769789e922ed81f6f997073120baTony Barbourprivate:
24382489d723fd0d3935da0dc7e1021c56c7b721d3Courtney Goeltzenleuchter    VkApplicationInfo app_;
2534888cfbdcd1769789e922ed81f6f997073120baTony Barbour    int default_dev_;
26382489d723fd0d3935da0dc7e1021c56c7b721d3Courtney Goeltzenleuchter    VkInstance inst;
2734888cfbdcd1769789e922ed81f6f997073120baTony Barbour
2834888cfbdcd1769789e922ed81f6f997073120baTony Barbour    std::vector<Device *> devs_;
2934888cfbdcd1769789e922ed81f6f997073120baTony Barbour};
3034888cfbdcd1769789e922ed81f6f997073120baTony Barbour}
3134888cfbdcd1769789e922ed81f6f997073120baTony Barbour#endif // TEST_ENVIRONMENT_H
32