tcuNullPlatform.cpp revision 3ff8f3de14f6eabfaad479b480f7433459a63365
1/*------------------------------------------------------------------------- 2 * drawElements Quality Program Tester Core 3 * ---------------------------------------- 4 * 5 * Copyright 2014 The Android Open Source Project 6 * 7 * Licensed under the Apache License, Version 2.0 (the "License"); 8 * you may not use this file except in compliance with the License. 9 * You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, software 14 * distributed under the License is distributed on an "AS IS" BASIS, 15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 * See the License for the specific language governing permissions and 17 * limitations under the License. 18 * 19 *//*! 20 * \file 21 * \brief Null GL platform. 22 *//*--------------------------------------------------------------------*/ 23 24#include "tcuNullPlatform.hpp" 25#include "tcuNullContextFactory.hpp" 26#include "tcuNullRenderContext.hpp" 27#include "egluNativeDisplay.hpp" 28#include "eglwLibrary.hpp" 29 30namespace tcu 31{ 32namespace null 33{ 34 35class NullEGLDisplay : public eglu::NativeDisplay 36{ 37public: 38 NullEGLDisplay (void) 39 : eglu::NativeDisplay(CAPABILITY_GET_DISPLAY_LEGACY) 40 { 41 // \note All functions in library are null 42 } 43 44 const eglw::Library& getLibrary (void) const 45 { 46 return m_library; 47 } 48 49private: 50 eglw::FuncPtrLibrary m_library; 51}; 52 53class NullEGLDisplayFactory : public eglu::NativeDisplayFactory 54{ 55public: 56 NullEGLDisplayFactory (void) 57 : eglu::NativeDisplayFactory("null", "Null EGL Display", eglu::NativeDisplay::CAPABILITY_GET_DISPLAY_LEGACY) 58 { 59 } 60 61 eglu::NativeDisplay* createDisplay (const eglw::EGLAttrib*) const 62 { 63 return new NullEGLDisplay(); 64 } 65}; 66 67Platform::Platform (void) 68{ 69 m_contextFactoryRegistry.registerFactory(new NullGLContextFactory()); 70 m_nativeDisplayFactoryRegistry.registerFactory(new NullEGLDisplayFactory()); 71} 72 73Platform::~Platform (void) 74{ 75} 76 77} // null 78} // tcu 79 80tcu::Platform* createPlatform (void) 81{ 82 return new tcu::null::Platform(); 83} 84