diff options
author | Aleksei Nikiforov <darktemplar@basealt.ru> | 2018-12-14 12:44:20 +0300 |
---|---|---|
committer | Thorsten Behrens <Thorsten.Behrens@CIB.de> | 2018-12-19 08:42:24 +0100 |
commit | d51452fc4f15f956dde32cb2cc3e118473f4f23a (patch) | |
tree | b08b0b627e822f53a7f8ac498bfc7037d527991f /vcl/inc | |
parent | 43fe4c8327b1d93d7b801282a1c7b856035a8b4d (diff) |
tdf#121247, tdf#121266 KDE5: Add basic support for OpenGL
Change-Id: Id3a5879f661a6fa51b9f9dc40af73687a8f624df
Reviewed-on: https://gerrit.libreoffice.org/65310
Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de>
Tested-by: Jenkins
(cherry picked from commit 56b19f9a814ae5a39ed760ee542d715493cd0bf3)
Reviewed-on: https://gerrit.libreoffice.org/65393
Reviewed-by: Aleksei Nikiforov <darktemplar@basealt.ru>
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
Diffstat (limited to 'vcl/inc')
-rw-r--r-- | vcl/inc/qt5/Qt5Object.hxx | 8 | ||||
-rw-r--r-- | vcl/inc/qt5/Qt5OpenGLContext.hxx | 50 |
2 files changed, 56 insertions, 2 deletions
diff --git a/vcl/inc/qt5/Qt5Object.hxx b/vcl/inc/qt5/Qt5Object.hxx index 294f4da4d9db..640c83753deb 100644 --- a/vcl/inc/qt5/Qt5Object.hxx +++ b/vcl/inc/qt5/Qt5Object.hxx @@ -24,14 +24,18 @@ #include <QtGui/QRegion> -class QWidget; class Qt5Frame; +class QWidget; +class QWindow; class Qt5Object : public SalObject { + friend class Qt5OpenGLContext; + SystemEnvData m_aSystemData; Qt5Frame* m_pParent; - QWidget* m_pQWidget; + QWidget* m_pQWidget; // main widget, container + QWindow* m_pQWindow; // contained window, used for opengl rendering QRegion m_pRegion; public: diff --git a/vcl/inc/qt5/Qt5OpenGLContext.hxx b/vcl/inc/qt5/Qt5OpenGLContext.hxx new file mode 100644 index 000000000000..778df689ba65 --- /dev/null +++ b/vcl/inc/qt5/Qt5OpenGLContext.hxx @@ -0,0 +1,50 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you 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 . + */ + +#pragma once + +#include <vcl/opengl/OpenGLContext.hxx> + +class QWindow; +class QOpenGLContext; + +class Qt5OpenGLContext : public OpenGLContext +{ +public: + virtual void initWindow() override; + +private: + virtual const GLWindow& getOpenGLWindow() const override { return m_aGLWin; } + virtual GLWindow& getModifiableOpenGLWindow() override { return m_aGLWin; } + virtual bool ImplInit() override; + + virtual void makeCurrent() override; + virtual void destroyCurrentContext() override; + virtual bool isCurrent() override; + virtual bool isAnyCurrent() override; + virtual void resetCurrent() override; + virtual void swapBuffers() override; + + static bool g_bAnyCurrent; + + GLWindow m_aGLWin; + + QWindow* m_pWindow; + QOpenGLContext* m_pContext; +}; |