1 #ifndef _TEGLSIMPLECONFIGCASE_HPP 2 #define _TEGLSIMPLECONFIGCASE_HPP 3 /*------------------------------------------------------------------------- 4 * drawElements Quality Program EGL Module 5 * --------------------------------------- 6 * 7 * Copyright 2014 The Android Open Source Project 8 * 9 * Licensed under the Apache License, Version 2.0 (the "License"); 10 * you may not use this file except in compliance with the License. 11 * You may obtain a copy of the License at 12 * 13 * http://www.apache.org/licenses/LICENSE-2.0 14 * 15 * Unless required by applicable law or agreed to in writing, software 16 * distributed under the License is distributed on an "AS IS" BASIS, 17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 * See the License for the specific language governing permissions and 19 * limitations under the License. 20 * 21 *//*! 22 * \file 23 * \brief Simple Context construction test. 24 *//*--------------------------------------------------------------------*/ 25 26 #include "tcuDefs.hpp" 27 #include "teglTestCase.hpp" 28 #include "egluConfigFilter.hpp" 29 30 #include <vector> 31 #include <string> 32 33 namespace deqp 34 { 35 namespace egl 36 { 37 38 class SimpleConfigCase : public TestCase 39 { 40 public: 41 SimpleConfigCase(EglTestContext &eglTestCtx, const char *name, const char *description, 42 const eglu::FilterList &filters); 43 virtual ~SimpleConfigCase(void); 44 45 void init(void); 46 void deinit(void); 47 IterateResult iterate(void); 48 49 protected: getDisplay(void)50 eglw::EGLDisplay getDisplay(void) 51 { 52 return m_display; 53 } 54 55 private: 56 virtual void executeForConfig(eglw::EGLDisplay display, eglw::EGLConfig config) = DE_NULL; 57 58 SimpleConfigCase(const SimpleConfigCase &other); 59 SimpleConfigCase &operator=(const SimpleConfigCase &other); 60 61 const eglu::FilterList m_filters; 62 63 eglw::EGLDisplay m_display; 64 std::vector<eglw::EGLConfig> m_configs; 65 std::vector<eglw::EGLConfig>::iterator m_configIter; 66 }; 67 68 class NamedFilterList : public eglu::FilterList 69 { 70 public: NamedFilterList(const char * name,const char * description)71 NamedFilterList(const char *name, const char *description) : m_name(name), m_description(description) 72 { 73 } 74 getName(void) const75 const char *getName(void) const 76 { 77 return m_name.c_str(); 78 } getDescription(void) const79 const char *getDescription(void) const 80 { 81 return m_description.c_str(); 82 } 83 84 private: 85 std::string m_name; 86 std::string m_description; 87 }; 88 89 void getDefaultFilterLists(std::vector<NamedFilterList> &lists, const eglu::FilterList &baseFilters); 90 91 } // namespace egl 92 } // namespace deqp 93 94 #endif // _TEGLSIMPLECONFIGCASE_HPP 95