199e9d1d74ff89ad3a0563b4ce8fc55de8734d0ecKarl Schultz/* 299e9d1d74ff89ad3a0563b4ce8fc55de8734d0ecKarl Schultz * Copyright (c) 2015-2016 The Khronos Group Inc. 399e9d1d74ff89ad3a0563b4ce8fc55de8734d0ecKarl Schultz * Copyright (c) 2015-2016 Valve Corporation 499e9d1d74ff89ad3a0563b4ce8fc55de8734d0ecKarl Schultz * Copyright (c) 2015-2016 LunarG, Inc. 599e9d1d74ff89ad3a0563b4ce8fc55de8734d0ecKarl Schultz * 643b53e83705f02245da6ae61e31273866a35b833Jon Ashburn * Licensed under the Apache License, Version 2.0 (the "License"); 743b53e83705f02245da6ae61e31273866a35b833Jon Ashburn * you may not use this file except in compliance with the License. 843b53e83705f02245da6ae61e31273866a35b833Jon Ashburn * You may obtain a copy of the License at 999e9d1d74ff89ad3a0563b4ce8fc55de8734d0ecKarl Schultz * 1043b53e83705f02245da6ae61e31273866a35b833Jon Ashburn * http://www.apache.org/licenses/LICENSE-2.0 1199e9d1d74ff89ad3a0563b4ce8fc55de8734d0ecKarl Schultz * 1243b53e83705f02245da6ae61e31273866a35b833Jon Ashburn * Unless required by applicable law or agreed to in writing, software 1343b53e83705f02245da6ae61e31273866a35b833Jon Ashburn * distributed under the License is distributed on an "AS IS" BASIS, 1443b53e83705f02245da6ae61e31273866a35b833Jon Ashburn * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1543b53e83705f02245da6ae61e31273866a35b833Jon Ashburn * See the License for the specific language governing permissions and 1643b53e83705f02245da6ae61e31273866a35b833Jon Ashburn * limitations under the License. 1799e9d1d74ff89ad3a0563b4ce8fc55de8734d0ecKarl Schultz * 1899e9d1d74ff89ad3a0563b4ce8fc55de8734d0ecKarl Schultz * Author: Chia-I Wu <olvaffe@gmail.com> 1999e9d1d74ff89ad3a0563b4ce8fc55de8734d0ecKarl Schultz * Author: Chris Forbes <chrisf@ijw.co.nz> 2099e9d1d74ff89ad3a0563b4ce8fc55de8734d0ecKarl Schultz * Author: Courtney Goeltzenleuchter <courtney@LunarG.com> 2199e9d1d74ff89ad3a0563b4ce8fc55de8734d0ecKarl Schultz * Author: Mark Lobodzinski <mark@lunarg.com> 2299e9d1d74ff89ad3a0563b4ce8fc55de8734d0ecKarl Schultz * Author: Mike Stroyan <mike@LunarG.com> 2399e9d1d74ff89ad3a0563b4ce8fc55de8734d0ecKarl Schultz * Author: Tobin Ehlis <tobine@google.com> 2499e9d1d74ff89ad3a0563b4ce8fc55de8734d0ecKarl Schultz * Author: Tony Barbour <tony@LunarG.com> 2599e9d1d74ff89ad3a0563b4ce8fc55de8734d0ecKarl Schultz */ 2699e9d1d74ff89ad3a0563b4ce8fc55de8734d0ecKarl Schultz 2734888cfbdcd1769789e922ed81f6f997073120baTony Barbour#ifndef TEST_ENVIRONMENT_H 2834888cfbdcd1769789e922ed81f6f997073120baTony Barbour#define TEST_ENVIRONMENT_H 295b66aa51f060c804e1804cf45909ed6489552c62Chia-I Wu 309cc421eb545767e22fd723dc573a7a3225261b1cCourtney Goeltzenleuchter#include "vktestbinding.h" 3134888cfbdcd1769789e922ed81f6f997073120baTony Barbour 329cc421eb545767e22fd723dc573a7a3225261b1cCourtney Goeltzenleuchternamespace vk_testing { 3334888cfbdcd1769789e922ed81f6f997073120baTony Barbourclass Environment : public ::testing::Environment { 3499e9d1d74ff89ad3a0563b4ce8fc55de8734d0ecKarl Schultz public: 3534888cfbdcd1769789e922ed81f6f997073120baTony Barbour Environment(); 3634888cfbdcd1769789e922ed81f6f997073120baTony Barbour 3734888cfbdcd1769789e922ed81f6f997073120baTony Barbour bool parse_args(int argc, char **argv); 3834888cfbdcd1769789e922ed81f6f997073120baTony Barbour 3934888cfbdcd1769789e922ed81f6f997073120baTony Barbour virtual void SetUp(); 4034888cfbdcd1769789e922ed81f6f997073120baTony Barbour virtual void TearDown(); 4134888cfbdcd1769789e922ed81f6f997073120baTony Barbour 4234888cfbdcd1769789e922ed81f6f997073120baTony Barbour const std::vector<Device *> &devices() { return devs_; } 4334888cfbdcd1769789e922ed81f6f997073120baTony Barbour Device &default_device() { return *(devs_[default_dev_]); } 44cedc15f3b62cfe757c583fe2106fe957a9ee30f9Jon Ashburn VkInstance get_instance() { return inst; } 458205d901f17b1c76d89c956be235cf4e7a20a546Tony Barbour VkPhysicalDevice gpus[16]; 4634888cfbdcd1769789e922ed81f6f997073120baTony Barbour 4799e9d1d74ff89ad3a0563b4ce8fc55de8734d0ecKarl Schultz private: 48382489d723fd0d3935da0dc7e1021c56c7b721d3Courtney Goeltzenleuchter VkApplicationInfo app_; 490abdb66fa4e8e68904545af6df15cbe2116b6c43Courtney Goeltzenleuchter uint32_t default_dev_; 50382489d723fd0d3935da0dc7e1021c56c7b721d3Courtney Goeltzenleuchter VkInstance inst; 5134888cfbdcd1769789e922ed81f6f997073120baTony Barbour 5234888cfbdcd1769789e922ed81f6f997073120baTony Barbour std::vector<Device *> devs_; 5334888cfbdcd1769789e922ed81f6f997073120baTony Barbour}; 5434888cfbdcd1769789e922ed81f6f997073120baTony Barbour} 5534888cfbdcd1769789e922ed81f6f997073120baTony Barbour#endif // TEST_ENVIRONMENT_H 56