1 #ifndef _GLUPLATFORM_HPP 2 #define _GLUPLATFORM_HPP 3 /*------------------------------------------------------------------------- 4 * drawElements Quality Program OpenGL ES Utilities 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 OpenGL platform interface. 24 *//*--------------------------------------------------------------------*/ 25 26 #include "tcuDefs.hpp" 27 #include "gluContextFactory.hpp" 28 29 namespace tcu 30 { 31 class CommandLine; 32 } 33 34 namespace glu 35 { 36 37 /*--------------------------------------------------------------------*//*! 38 * \brief OpenGL (ES) platform interface 39 * 40 * OpenGL (ES) platform interface provides abstraction for GL context 41 * creation. A single platform may support multiple methods for creating 42 * rendering contexts (such as GLX and EGL on Linux). This is accomplished 43 * by having a list of GL context factories (m_contextFactoryRegistry). 44 * 45 * Context factory is selected on run-time using --deqp-gl-context-type 46 * command line argument. If no such argument is given, first entry 47 * is used as default. 48 * 49 * See glu::ContextFactory and glu::RenderContext for complete details 50 * on the porting layer. 51 * 52 * If your platform supports EGL and you have implemented eglu::Platform, 53 * you may enable EGL support just by registering eglu::GLContextFactory. 54 * 55 * OpenGL (ES) platform implementation is required by OpenGL (ES) tests. 56 * It is NOT required by EGL or OpenCL tests. 57 *//*--------------------------------------------------------------------*/ 58 class Platform 59 { 60 public: 61 Platform (void); 62 ~Platform (void); 63 getContextFactoryRegistry(void) const64 const ContextFactoryRegistry& getContextFactoryRegistry (void) const { return m_contextFactoryRegistry; } 65 66 protected: 67 68 //! GL context factory registry. Add your context factories here in constructor. 69 ContextFactoryRegistry m_contextFactoryRegistry; 70 }; 71 72 } // glu 73 74 #endif // _GLUPLATFORM_HPP 75