Home | History | Annotate | Download | only in opengl
      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 
     64 	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