From 2586a62264610a55ae8d2894a6f9bee891a541f5 Mon Sep 17 00:00:00 2001 From: Laszlo Agocs Date: Tue, 20 Sep 2016 13:15:25 +0200 Subject: eglfs: Move remaining sources to under api Move platform integration, context and offscreensurface to under 'api'. This allows accessing these from out-of-tree eglfs backends as well. For instance, the upcoming eglfs_emu backend for the Qt Simulator may need access to QEglFSIntegration. Clean up the project files and remove out-of-date comments (the private module QtEglFSDeviceIntegration is not really header-less since 5.7). Change-Id: If96dd5780a6bd33a1cf29164364df9bf921c4d01 Reviewed-by: Andy Nichols --- src/plugins/platforms/eglfs/qeglfscontext.cpp | 119 -------------------------- 1 file changed, 119 deletions(-) delete mode 100644 src/plugins/platforms/eglfs/qeglfscontext.cpp (limited to 'src/plugins/platforms/eglfs/qeglfscontext.cpp') diff --git a/src/plugins/platforms/eglfs/qeglfscontext.cpp b/src/plugins/platforms/eglfs/qeglfscontext.cpp deleted file mode 100644 index 8d479873cf..0000000000 --- a/src/plugins/platforms/eglfs/qeglfscontext.cpp +++ /dev/null @@ -1,119 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the plugins of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qeglfsglobal.h" -#include -#include -#include - -#include "qeglfscontext.h" -#include "qeglfswindow_p.h" -#include "qeglfshooks_p.h" -#include "qeglfscursor_p.h" - -QT_BEGIN_NAMESPACE - -QEglFSContext::QEglFSContext(const QSurfaceFormat &format, QPlatformOpenGLContext *share, EGLDisplay display, - EGLConfig *config, const QVariant &nativeHandle) - : QEGLPlatformContext(format, share, display, config, nativeHandle, - qt_egl_device_integration()->supportsSurfacelessContexts() ? Flags(0) : QEGLPlatformContext::NoSurfaceless), - m_tempWindow(0) -{ -} - -EGLSurface QEglFSContext::eglSurfaceForPlatformSurface(QPlatformSurface *surface) -{ - if (surface->surface()->surfaceClass() == QSurface::Window) - return static_cast(surface)->surface(); - else - return static_cast(surface)->pbuffer(); -} - -EGLSurface QEglFSContext::createTemporaryOffscreenSurface() -{ - if (qt_egl_device_integration()->supportsPBuffers()) - return QEGLPlatformContext::createTemporaryOffscreenSurface(); - - if (!m_tempWindow) { - m_tempWindow = qt_egl_device_integration()->createNativeOffscreenWindow(format()); - if (!m_tempWindow) { - qWarning("QEglFSContext: Failed to create temporary native window"); - return EGL_NO_SURFACE; - } - } - EGLConfig config = q_configFromGLFormat(eglDisplay(), format()); - return eglCreateWindowSurface(eglDisplay(), config, m_tempWindow, 0); -} - -void QEglFSContext::destroyTemporaryOffscreenSurface(EGLSurface surface) -{ - if (qt_egl_device_integration()->supportsPBuffers()) { - QEGLPlatformContext::destroyTemporaryOffscreenSurface(surface); - } else { - eglDestroySurface(eglDisplay(), surface); - qt_egl_device_integration()->destroyNativeWindow(m_tempWindow); - m_tempWindow = 0; - } -} - -void QEglFSContext::runGLChecks() -{ - // Note that even though there is an EGL context current here, - // QOpenGLContext and QOpenGLFunctions are not yet usable at this stage. - const char *renderer = reinterpret_cast(glGetString(GL_RENDERER)); - // Be nice and warn about a common source of confusion. - if (renderer && strstr(renderer, "llvmpipe")) - qWarning("Running on a software rasterizer (LLVMpipe), expect limited performance."); -} - -void QEglFSContext::swapBuffers(QPlatformSurface *surface) -{ - // draw the cursor - if (surface->surface()->surfaceClass() == QSurface::Window) { - QPlatformWindow *window = static_cast(surface); - if (QEglFSCursor *cursor = qobject_cast(window->screen()->cursor())) - cursor->paintOnScreen(); - } - - qt_egl_device_integration()->waitForVSync(surface); - QEGLPlatformContext::swapBuffers(surface); - qt_egl_device_integration()->presentBuffer(surface); -} - -QT_END_NAMESPACE -- cgit v1.2.3