1 #ifndef _EGLUCONFIGFILTER_HPP
2 #define _EGLUCONFIGFILTER_HPP
3 /*-------------------------------------------------------------------------
4 * drawElements Quality Program Tester Core
5 * ----------------------------------------
7 * Copyright 2014 The Android Open Source Project
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
13 * http://www.apache.org/licenses/LICENSE-2.0
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.
23 * \brief EGL Config selection helper.
24 *//*--------------------------------------------------------------------*/
26 #include "tcuDefs.hpp"
27 #include "tcuRGBA.hpp"
29 #include "eglwDefs.hpp"
46 CandidateConfig (const eglw::Library& egl, eglw::EGLDisplay display, eglw::EGLConfig config);
47 CandidateConfig (const ConfigInfo& configInfo);
49 int get (deUint32 attrib) const;
52 int redSize (void) const;
53 int greenSize (void) const;
54 int blueSize (void) const;
55 int alphaSize (void) const;
56 int depthSize (void) const;
57 int stencilSize (void) const;
58 int samples (void) const;
60 deUint32 renderableType (void) const;
61 deUint32 surfaceType (void) const;
62 deUint32 colorComponentType (void) const;
64 tcu::RGBA colorBits (void) const { return tcu::RGBA(redSize(), greenSize(), blueSize(), alphaSize()); }
80 const eglw::Library* egl;
81 eglw::EGLDisplay display;
82 eglw::EGLConfig config;
84 const ConfigInfo* configInfo;
88 typedef bool (*ConfigFilter) (const CandidateConfig& candidate);
96 FilterList& operator<< (ConfigFilter filter);
97 FilterList& operator<< (const FilterList& other);
99 bool match (const eglw::Library& egl, eglw::EGLDisplay display, eglw::EGLConfig config) const;
100 bool match (const ConfigInfo& configInfo) const;
101 bool match (const CandidateConfig& candidate) const;
104 std::vector<ConfigFilter> m_rules;
109 #endif // _EGLUCONFIGFILTER_HPP