1 /* 2 * Copyright © 2017 Collabora Ltd. 3 * 4 * This file is part of vkmark. 5 * 6 * vkmark is free software: you can redistribute it and/or 7 * modify it under the terms of the GNU Lesser General Public 8 * License as published by the Free Software Foundation, either 9 * version 2.1 of the License, or (at your option) any later version. 10 * 11 * vkmark is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 * Lesser General Public License for more details. 15 * 16 * You should have received a copy of the GNU Lesser General Public 17 * License along with vkmark. If not, see <http://www.gnu.org/licenses/>. 18 * 19 * Authors: 20 * Alexandros Frantzis <alexandros.frantzis@collabora.com> 21 */ 22 23 #pragma once 24 25 #include <vector> 26 #include <string> 27 #include <memory> 28 29 class Benchmark; 30 class SceneCollection; 31 32 class BenchmarkCollection 33 { 34 public: 35 BenchmarkCollection(SceneCollection& scene_collection); 36 ~BenchmarkCollection(); 37 38 void add(std::vector<std::string> const& benchmarks); 39 std::vector<Benchmark*> benchmarks() const; 40 41 bool contains_normal_scenes() const; 42 43 private: 44 SceneCollection& scene_collection; 45 std::vector<std::unique_ptr<Benchmark>> benchmarks_; 46 bool contains_normal_scenes_; 47 }; 48