/*------------------------------------------------------------------------- * OpenGL Conformance Test Suite * ----------------------------- * * Copyright (c) 2016 Google Inc. * Copyright (c) 2016 The Khronos Group Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * *//*! * \file * \brief *//*--------------------------------------------------------------------*/ #include "tcuNullWSPlatform.hpp" #include "eglwEnums.hpp" #include "eglwLibrary.hpp" #include "egluGLContextFactory.hpp" namespace tcu { namespace nullws { class Window: public eglu::NativeWindow { public: static const Capability CAPABILITIES = CAPABILITY_CREATE_SURFACE_LEGACY; Window(eglu::NativeDisplay* nativeDisplay, const eglu::WindowParams& params) : NativeWindow(CAPABILITIES) { } eglw::EGLNativeWindowType getLegacyNative () { return DE_NULL; } }; class WindowFactory: public eglu::NativeWindowFactory { public: WindowFactory() : NativeWindowFactory("nullws", "NullWS Window", Window::CAPABILITIES) { } eglu::NativeWindow* createWindow(eglu::NativeDisplay* nativeDisplay, const eglu::WindowParams& params) const { return new Window(nativeDisplay, params); } }; class Pixmap: public eglu::NativePixmap { public: static const Capability CAPABILITIES = CAPABILITY_CREATE_SURFACE_LEGACY; Pixmap() : NativePixmap(CAPABILITIES) { } eglw::EGLNativePixmapType getLegacyNative () { return DE_NULL; } }; class PixmapFactory: public eglu::NativePixmapFactory { public: PixmapFactory() : NativePixmapFactory("nullws", "NullWS Pixmap", Pixmap::CAPABILITIES) { } eglu::NativePixmap* createPixmap (eglu::NativeDisplay*, int, int) const { return new Pixmap(); } }; class Display: public eglu::NativeDisplay { public: static const Capability CAPABILITIES = CAPABILITY_GET_DISPLAY_LEGACY; Display() : eglu::NativeDisplay(CAPABILITIES) { } eglw::EGLNativeDisplayType getLegacyNative() { return EGL_DEFAULT_DISPLAY; } const eglw::Library& getLibrary() const { return m_library; } private: eglw::DefaultLibrary m_library; }; class DisplayFactory: public eglu::NativeDisplayFactory { public: DisplayFactory() : eglu::NativeDisplayFactory ("nullws", "NullWS Display", Display::CAPABILITIES) { m_nativeWindowRegistry.registerFactory(new WindowFactory()); m_nativePixmapRegistry.registerFactory(new PixmapFactory()); } eglu::NativeDisplay* createDisplay (const eglw::EGLAttrib* attribList = DE_NULL) const { return new Display(); } }; Platform::Platform () { m_nativeDisplayFactoryRegistry.registerFactory(new DisplayFactory()); m_contextFactoryRegistry.registerFactory(new eglu::GLContextFactory(m_nativeDisplayFactoryRegistry)); } Platform::~Platform () { } } // nullws } // tcu tcu::Platform* createPlatform () { return new tcu::nullws::Platform(); }