1*35238bceSAndroid Build Coastguard Worker #ifndef _EGLUDEFS_HPP 2*35238bceSAndroid Build Coastguard Worker #define _EGLUDEFS_HPP 3*35238bceSAndroid Build Coastguard Worker /*------------------------------------------------------------------------- 4*35238bceSAndroid Build Coastguard Worker * drawElements Quality Program Tester Core 5*35238bceSAndroid Build Coastguard Worker * ---------------------------------------- 6*35238bceSAndroid Build Coastguard Worker * 7*35238bceSAndroid Build Coastguard Worker * Copyright 2014 The Android Open Source Project 8*35238bceSAndroid Build Coastguard Worker * 9*35238bceSAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License"); 10*35238bceSAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 11*35238bceSAndroid Build Coastguard Worker * You may obtain a copy of the License at 12*35238bceSAndroid Build Coastguard Worker * 13*35238bceSAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 14*35238bceSAndroid Build Coastguard Worker * 15*35238bceSAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 16*35238bceSAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 17*35238bceSAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18*35238bceSAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 19*35238bceSAndroid Build Coastguard Worker * limitations under the License. 20*35238bceSAndroid Build Coastguard Worker * 21*35238bceSAndroid Build Coastguard Worker *//*! 22*35238bceSAndroid Build Coastguard Worker * \file 23*35238bceSAndroid Build Coastguard Worker * \brief EGL common defines and types 24*35238bceSAndroid Build Coastguard Worker *//*--------------------------------------------------------------------*/ 25*35238bceSAndroid Build Coastguard Worker 26*35238bceSAndroid Build Coastguard Worker #include "tcuDefs.hpp" 27*35238bceSAndroid Build Coastguard Worker 28*35238bceSAndroid Build Coastguard Worker #define EGLU_CHECK(EGLW) eglu::checkError((EGLW).getError(), DE_NULL, __FILE__, __LINE__) 29*35238bceSAndroid Build Coastguard Worker #define EGLU_CHECK_MSG(EGLW, MSG) eglu::checkError((EGLW).getError(), MSG, __FILE__, __LINE__) 30*35238bceSAndroid Build Coastguard Worker #define EGLU_CHECK_CALL(EGLW, CALL) \ 31*35238bceSAndroid Build Coastguard Worker do \ 32*35238bceSAndroid Build Coastguard Worker { \ 33*35238bceSAndroid Build Coastguard Worker (EGLW).CALL; \ 34*35238bceSAndroid Build Coastguard Worker eglu::checkError((EGLW).getError(), #CALL, __FILE__, __LINE__); \ 35*35238bceSAndroid Build Coastguard Worker } while (false) 36*35238bceSAndroid Build Coastguard Worker #define EGLU_CHECK_CALL_FPTR(EGLW, CALL) \ 37*35238bceSAndroid Build Coastguard Worker do \ 38*35238bceSAndroid Build Coastguard Worker { \ 39*35238bceSAndroid Build Coastguard Worker CALL; \ 40*35238bceSAndroid Build Coastguard Worker eglu::checkError((EGLW).getError(), #CALL, __FILE__, __LINE__); \ 41*35238bceSAndroid Build Coastguard Worker } while (false) 42*35238bceSAndroid Build Coastguard Worker 43*35238bceSAndroid Build Coastguard Worker /*--------------------------------------------------------------------*//*! 44*35238bceSAndroid Build Coastguard Worker * \brief EGL utilities 45*35238bceSAndroid Build Coastguard Worker *//*--------------------------------------------------------------------*/ 46*35238bceSAndroid Build Coastguard Worker namespace eglu 47*35238bceSAndroid Build Coastguard Worker { 48*35238bceSAndroid Build Coastguard Worker 49*35238bceSAndroid Build Coastguard Worker class Error : public tcu::TestError 50*35238bceSAndroid Build Coastguard Worker { 51*35238bceSAndroid Build Coastguard Worker public: 52*35238bceSAndroid Build Coastguard Worker Error(uint32_t errCode, const char *errStr); 53*35238bceSAndroid Build Coastguard Worker Error(uint32_t errCode, const char *message, const char *expr, const char *file, int line); ~Error(void)54*35238bceSAndroid Build Coastguard Worker ~Error(void) throw() 55*35238bceSAndroid Build Coastguard Worker { 56*35238bceSAndroid Build Coastguard Worker } 57*35238bceSAndroid Build Coastguard Worker getError(void) const58*35238bceSAndroid Build Coastguard Worker uint32_t getError(void) const 59*35238bceSAndroid Build Coastguard Worker { 60*35238bceSAndroid Build Coastguard Worker return m_error; 61*35238bceSAndroid Build Coastguard Worker } 62*35238bceSAndroid Build Coastguard Worker 63*35238bceSAndroid Build Coastguard Worker private: 64*35238bceSAndroid Build Coastguard Worker uint32_t m_error; 65*35238bceSAndroid Build Coastguard Worker }; 66*35238bceSAndroid Build Coastguard Worker 67*35238bceSAndroid Build Coastguard Worker class BadAllocError : public tcu::ResourceError 68*35238bceSAndroid Build Coastguard Worker { 69*35238bceSAndroid Build Coastguard Worker public: 70*35238bceSAndroid Build Coastguard Worker BadAllocError(const char *errStr); 71*35238bceSAndroid Build Coastguard Worker BadAllocError(const char *message, const char *expr, const char *file, int line); ~BadAllocError(void)72*35238bceSAndroid Build Coastguard Worker ~BadAllocError(void) throw() 73*35238bceSAndroid Build Coastguard Worker { 74*35238bceSAndroid Build Coastguard Worker } 75*35238bceSAndroid Build Coastguard Worker }; 76*35238bceSAndroid Build Coastguard Worker 77*35238bceSAndroid Build Coastguard Worker void checkError(uint32_t err, const char *msg, const char *file, int line); 78*35238bceSAndroid Build Coastguard Worker 79*35238bceSAndroid Build Coastguard Worker class Version 80*35238bceSAndroid Build Coastguard Worker { 81*35238bceSAndroid Build Coastguard Worker public: Version(int major,int minor)82*35238bceSAndroid Build Coastguard Worker Version(int major, int minor) : m_major(major), m_minor(minor) 83*35238bceSAndroid Build Coastguard Worker { 84*35238bceSAndroid Build Coastguard Worker } 85*35238bceSAndroid Build Coastguard Worker getMajor(void) const86*35238bceSAndroid Build Coastguard Worker int getMajor(void) const 87*35238bceSAndroid Build Coastguard Worker { 88*35238bceSAndroid Build Coastguard Worker return m_major; 89*35238bceSAndroid Build Coastguard Worker } getMinor(void) const90*35238bceSAndroid Build Coastguard Worker int getMinor(void) const 91*35238bceSAndroid Build Coastguard Worker { 92*35238bceSAndroid Build Coastguard Worker return m_minor; 93*35238bceSAndroid Build Coastguard Worker } 94*35238bceSAndroid Build Coastguard Worker 95*35238bceSAndroid Build Coastguard Worker bool operator<(const Version &v) const; 96*35238bceSAndroid Build Coastguard Worker bool operator==(const Version &v) const; 97*35238bceSAndroid Build Coastguard Worker 98*35238bceSAndroid Build Coastguard Worker bool operator!=(const Version &v) const; 99*35238bceSAndroid Build Coastguard Worker bool operator>(const Version &v) const; 100*35238bceSAndroid Build Coastguard Worker bool operator<=(const Version &v) const; 101*35238bceSAndroid Build Coastguard Worker bool operator>=(const Version &v) const; 102*35238bceSAndroid Build Coastguard Worker 103*35238bceSAndroid Build Coastguard Worker private: 104*35238bceSAndroid Build Coastguard Worker int m_major; 105*35238bceSAndroid Build Coastguard Worker int m_minor; 106*35238bceSAndroid Build Coastguard Worker }; 107*35238bceSAndroid Build Coastguard Worker 108*35238bceSAndroid Build Coastguard Worker } // namespace eglu 109*35238bceSAndroid Build Coastguard Worker 110*35238bceSAndroid Build Coastguard Worker #endif // _EGLUDEFS_HPP 111