Merge libkwineffects into libkwin

libkwineffects was introduced when kwin used to be an executable. It
provided an api to implement effects and shielded from the technical
quirks in kwin.

Over the time, kwin internals had been split and abstractions were
refactored so they can be consumed in scripts or plugins. Besides that,
new ways to implement extensions have been introduced, which use
kwin's internal abstractions.

On the other hand, effects continue using libkwineffects specific apis.
This has a few issues: qtquick effects use both apis and it bites us,
duplicating same apis.

The best solution so far is to merge libkwineffects with libkwin, and
replace libkwineffects abstractions with libkwin abstractions, e.g.
EffectScreen -> Output, etc. This change takes care of adjusting libs.

Obviously, the main disadvantage of doing so is that binary effects
have to be recompiled every time new libkwin is released. But it's
already the case with libkwineffects too.
master
Vlad Zahorodnii 11 months ago
parent 416c2c64b1
commit d7b1661e08

@ -15,7 +15,7 @@ endif()
######################################################## ########################################################
set(testWindowPaintData_SRCS test_window_paint_data.cpp) set(testWindowPaintData_SRCS test_window_paint_data.cpp)
add_executable(testWindowPaintData ${testWindowPaintData_SRCS}) add_executable(testWindowPaintData ${testWindowPaintData_SRCS})
target_link_libraries(testWindowPaintData kwineffects Qt::Widgets Qt::Test ) target_link_libraries(testWindowPaintData kwin Qt::Widgets Qt::Test )
add_test(NAME kwin-testWindowPaintData COMMAND testWindowPaintData) add_test(NAME kwin-testWindowPaintData COMMAND testWindowPaintData)
ecm_mark_as_test(testWindowPaintData) ecm_mark_as_test(testWindowPaintData)
@ -205,8 +205,6 @@ target_link_libraries(testXkb
KF6::ConfigCore KF6::ConfigCore
KF6::WindowSystem KF6::WindowSystem
kwineffects
XKB::XKB XKB::XKB
) )
add_test(NAME kwin-testXkb COMMAND testXkb) add_test(NAME kwin-testXkb COMMAND testXkb)

@ -4,7 +4,7 @@ macro(KWINEFFECTS_UNIT_TESTS)
foreach(_testname ${ARGN}) foreach(_testname ${ARGN})
add_executable(${_testname} ${_testname}.cpp) add_executable(${_testname} ${_testname}.cpp)
add_test(NAME kwineffects-${_testname} COMMAND ${_testname}) add_test(NAME kwineffects-${_testname} COMMAND ${_testname})
target_link_libraries(${_testname} Qt::Test kwineffects) target_link_libraries(${_testname} Qt::Test kwin)
ecm_mark_as_test(${_testname}) ecm_mark_as_test(${_testname})
endforeach() endforeach()
endmacro() endmacro()

@ -11,7 +11,7 @@
#include <QTest> #include <QTest>
#include <epoxy/egl.h> #include <epoxy/egl.h>
#include "libkwineffects/kwinconfig.h" #include "config-kwin.h"
#if HAVE_GLX #if HAVE_GLX
#include "../src/backends/x11/standalone/x11_standalone_glx_context_attribute_builder.h" #include "../src/backends/x11/standalone/x11_standalone_glx_context_attribute_builder.h"
#include <epoxy/glx.h> #include <epoxy/glx.h>

@ -15,7 +15,7 @@
#include "KWayland/Client/output.h" #include "KWayland/Client/output.h"
#include "KWayland/Client/registry.h" #include "KWayland/Client/registry.h"
#include "../../tests/fakeoutput.h" #include "../../../tests/fakeoutput.h"
// Wayland // Wayland
#include <wayland-client-protocol.h> #include <wayland-client-protocol.h>

@ -27,7 +27,7 @@
#include "KWayland/Client/shm_pool.h" #include "KWayland/Client/shm_pool.h"
#include "KWayland/Client/surface.h" #include "KWayland/Client/surface.h"
#include "../../tests/fakeoutput.h" #include "../../../tests/fakeoutput.h"
// Wayland // Wayland
#include <wayland-client-protocol.h> #include <wayland-client-protocol.h>

@ -17,7 +17,7 @@
#include "KWayland/Client/registry.h" #include "KWayland/Client/registry.h"
#include "KWayland/Client/xdgoutput.h" #include "KWayland/Client/xdgoutput.h"
#include "../../tests/fakeoutput.h" #include "../../../tests/fakeoutput.h"
class TestXdgOutput : public QObject class TestXdgOutput : public QObject
{ {

@ -26,7 +26,7 @@
#include "wayland/surface.h" #include "wayland/surface.h"
#include "wayland/xdgshell.h" #include "wayland/xdgshell.h"
#include "../../tests/fakeoutput.h" #include "../../../tests/fakeoutput.h"
using namespace KWin; using namespace KWin;

@ -10,7 +10,7 @@
#include <QTest> #include <QTest>
#include <QThread> #include <QThread>
#include "../../tests/fakeoutput.h" #include "../../../tests/fakeoutput.h"
// WaylandServer // WaylandServer
#include "wayland/compositor.h" #include "wayland/compositor.h"

@ -4,8 +4,6 @@ ecm_setup_version(${PROJECT_VERSION}
SOVERSION ${PROJECT_VERSION_MAJOR} SOVERSION ${PROJECT_VERSION_MAJOR}
) )
# for things that are also used by kwin libraries
configure_file(libkwineffects/kwinconfig.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/libkwineffects/kwinconfig.h)
configure_file(config-kwin.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-kwin.h) configure_file(config-kwin.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-kwin.h)
set(kwin_effects_dbus_xml ${CMAKE_CURRENT_SOURCE_DIR}/org.kde.kwin.Effects.xml) set(kwin_effects_dbus_xml ${CMAKE_CURRENT_SOURCE_DIR}/org.kde.kwin.Effects.xml)
@ -18,7 +16,6 @@ target_link_libraries(KWinEffectsInterface Qt::DBus)
add_subdirectory(helpers) add_subdirectory(helpers)
add_subdirectory(qml) add_subdirectory(qml)
add_subdirectory(libkwineffects)
if (KWIN_BUILD_KCMS) if (KWIN_BUILD_KCMS)
add_subdirectory(kcms) add_subdirectory(kcms)
endif() endif()
@ -106,6 +103,30 @@ target_sources(kwin PRIVATE
layers.cpp layers.cpp
layershellv1integration.cpp layershellv1integration.cpp
layershellv1window.cpp layershellv1window.cpp
libkwineffects/anidata.cpp
libkwineffects/colorspace.cpp
libkwineffects/effecttogglablestate.cpp
libkwineffects/glframebuffer.cpp
libkwineffects/glplatform.cpp
libkwineffects/glshader.cpp
libkwineffects/glshadermanager.cpp
libkwineffects/gltexture.cpp
libkwineffects/glutils.cpp
libkwineffects/glutils_funcs.cpp
libkwineffects/glvertexbuffer.cpp
libkwineffects/kwinanimationeffect.cpp
libkwineffects/kwineffects.cpp
libkwineffects/kwinoffscreeneffect.cpp
libkwineffects/kwinoffscreenquickview.cpp
libkwineffects/kwinquickeffect.cpp
libkwineffects/logging.cpp
libkwineffects/logging.cpp
libkwineffects/openglcontext.cpp
libkwineffects/rendertarget.cpp
libkwineffects/rendertarget.cpp
libkwineffects/renderviewport.cpp
libkwineffects/renderviewport.cpp
libkwineffects/version.cpp
lidswitchtracker.cpp lidswitchtracker.cpp
main.cpp main.cpp
modifier_only_shortcuts.cpp modifier_only_shortcuts.cpp
@ -199,29 +220,27 @@ target_sources(kwin PRIVATE
target_link_libraries(kwin target_link_libraries(kwin
PUBLIC PUBLIC
kwineffects
kwinglutils
Qt::DBus Qt::DBus
Qt::Quick Qt::Quick
Qt::Widgets Qt::Widgets
Wayland::Server Wayland::Server
KF6::ConfigCore
KF6::CoreAddons
KF6::WindowSystem
epoxy::epoxy
PRIVATE PRIVATE
Qt::Concurrent Qt::Concurrent
Qt::Sensors Qt::Sensors
KF6::ConfigCore
KF6::ConfigQml KF6::ConfigQml
KF6::ConfigWidgets KF6::ConfigWidgets
KF6::CoreAddons
KF6::Crash KF6::Crash
KF6::GlobalAccel KF6::GlobalAccel
KF6::I18n KF6::I18n
KF6::Package KF6::Package
KF6::Service KF6::Service
KF6::WindowSystem
KDecoration2::KDecoration KDecoration2::KDecoration
KDecoration2::KDecoration2Private KDecoration2::KDecoration2Private
@ -392,8 +411,14 @@ install(
DESTINATION DESTINATION
${KDE_INSTALL_DBUSINTERFACEDIR} ${KDE_INSTALL_DBUSINTERFACEDIR}
) )
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/kwin_export.h DESTINATION ${KDE_INSTALL_INCLUDEDIR}/kwin COMPONENT Devel)
install(EXPORT KWinTargets DESTINATION "${KDE_INSTALL_CMAKEPACKAGEDIR}/KWin" FILE KWinTargets.cmake NAMESPACE KWin:: ) install(EXPORT KWinTargets DESTINATION "${KDE_INSTALL_CMAKEPACKAGEDIR}/KWin" FILE KWinTargets.cmake NAMESPACE KWin:: )
install(FILES
${CMAKE_CURRENT_BINARY_DIR}/config-kwin.h
${CMAKE_CURRENT_BINARY_DIR}/kwin_export.h
DESTINATION ${KDE_INSTALL_INCLUDEDIR}/kwin COMPONENT Devel)
install(FILES install(FILES
core/output.h core/output.h
core/renderloop.h core/renderloop.h
@ -403,6 +428,25 @@ install(FILES
utils/edid.h utils/edid.h
DESTINATION ${KDE_INSTALL_INCLUDEDIR}/kwin/utils COMPONENT Devel) DESTINATION ${KDE_INSTALL_INCLUDEDIR}/kwin/utils COMPONENT Devel)
install(FILES
libkwineffects/colorspace.h
libkwineffects/glframebuffer.h
libkwineffects/glplatform.h
libkwineffects/glshader.h
libkwineffects/glshadermanager.h
libkwineffects/gltexture.h
libkwineffects/glutils.h
libkwineffects/glutils_funcs.h
libkwineffects/glvertexbuffer.h
libkwineffects/kwinanimationeffect.h
libkwineffects/kwineffects.h
libkwineffects/kwinglobals.h
libkwineffects/kwinoffscreeneffect.h
libkwineffects/kwinoffscreenquickview.h
libkwineffects/kwinquickeffect.h
libkwineffects/rendertarget.h
libkwineffects/renderviewport.h
DESTINATION ${KDE_INSTALL_INCLUDEDIR}/kwin/libkwineffects COMPONENT Devel)
set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KWin") set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KWin")

@ -4,7 +4,9 @@ include(CMakeFindDependencyMacro)
find_dependency(Qt6Core "@QT_MIN_VERSION@") find_dependency(Qt6Core "@QT_MIN_VERSION@")
find_dependency(Qt6Gui "@QT_MIN_VERSION@") find_dependency(Qt6Gui "@QT_MIN_VERSION@")
find_dependency(Qt6Quick "@QT_MIN_VERSION@") find_dependency(Qt6Quick "@QT_MIN_VERSION@")
find_dependency(KWinEffects) find_dependency(KF6Config "@KF6_MIN_VERSION@")
find_dependency(KF6CoreAddons "@KF6_MIN_VERSION@")
find_dependency(KF6WindowSystem "@KF6_MIN_VERSION@")
@PACKAGE_SETUP_KWIN_AUTOMOC_VARIABLES@ @PACKAGE_SETUP_KWIN_AUTOMOC_VARIABLES@
include("${CMAKE_CURRENT_LIST_DIR}/KWinTargets.cmake") include("${CMAKE_CURRENT_LIST_DIR}/KWinTargets.cmake")

@ -9,7 +9,7 @@
#include "drm_commit_thread.h" #include "drm_commit_thread.h"
#include "drm_commit.h" #include "drm_commit.h"
#include "drm_gpu.h" #include "drm_gpu.h"
#include "logging_p.h" #include "drm_logging.h"
#include "utils/realtime.h" #include "utils/realtime.h"
using namespace std::chrono_literals; using namespace std::chrono_literals;

@ -8,9 +8,10 @@
*/ */
#include "x11_standalone_backend.h" #include "x11_standalone_backend.h"
#include "config-kwin.h"
#include "atoms.h" #include "atoms.h"
#include "core/session.h" #include "core/session.h"
#include "libkwineffects/kwinconfig.h"
#include "x11_standalone_cursor.h" #include "x11_standalone_cursor.h"
#include "x11_standalone_edge.h" #include "x11_standalone_edge.h"
#include "x11_standalone_placeholderoutput.h" #include "x11_standalone_placeholderoutput.h"

@ -23,3 +23,5 @@
#define BREEZE_KDECORATION_PLUGIN_ID "${BREEZE_KDECORATION_PLUGIN_ID}" #define BREEZE_KDECORATION_PLUGIN_ID "${BREEZE_KDECORATION_PLUGIN_ID}"
#endif #endif
#cmakedefine01 HAVE_XWAYLAND_LISTENFD #cmakedefine01 HAVE_XWAYLAND_LISTENFD
#cmakedefine01 HAVE_GLX
#cmakedefine01 HAVE_DL_LIBRARY

@ -1,110 +0,0 @@
ecm_setup_version(${PROJECT_VERSION}
VARIABLE_PREFIX KWINEFFECTS
VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/kwineffects_version.h"
PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KWinEffectsConfigVersion.cmake"
SOVERSION 14
)
### effects lib ###
set(kwin_EFFECTSLIB_SRCS
anidata.cpp
kwinanimationeffect.cpp
kwineffects.cpp
kwinoffscreeneffect.cpp
kwinoffscreenquickview.cpp
kwinquickeffect.cpp
logging.cpp
rendertarget.cpp
renderviewport.cpp
effecttogglablestate.cpp
)
add_library(kwineffects SHARED ${kwin_EFFECTSLIB_SRCS})
generate_export_header(kwineffects EXPORT_FILE_NAME kwineffects_export.h)
target_link_libraries(kwineffects
PUBLIC
KF6::ConfigCore
KF6::CoreAddons
KF6::WindowSystem
PRIVATE
XCB::XCB
Qt::GuiPrivate
Qt::Quick
KF6::I18n
kwinglutils
)
target_include_directories(kwineffects INTERFACE "$<INSTALL_INTERFACE:${KDE_INSTALL_INCLUDEDIR}/kwin>")
set_target_properties(kwineffects PROPERTIES
VERSION ${KWINEFFECTS_VERSION}
SOVERSION ${KWINEFFECTS_SOVERSION}
)
install(TARGETS kwineffects EXPORT KWinEffectsTargets ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
# kwingl(es)utils library
set(kwin_GLUTILSLIB_SRCS
colorspace.cpp
glframebuffer.cpp
glplatform.cpp
glshader.cpp
glshadermanager.cpp
gltexture.cpp
glutils.cpp
glutils_funcs.cpp
glvertexbuffer.cpp
logging.cpp
openglcontext.cpp
rendertarget.cpp
renderviewport.cpp
version.cpp
)
add_library(kwinglutils SHARED ${kwin_GLUTILSLIB_SRCS})
generate_export_header(kwinglutils BASE_NAME kwinglutils EXPORT_FILE_NAME kwinglutils_export.h)
target_link_libraries(kwinglutils PUBLIC KF6::CoreAddons KF6::ConfigCore KF6::WindowSystem epoxy::epoxy PRIVATE XCB::XCB)
target_include_directories(kwinglutils INTERFACE "$<INSTALL_INTERFACE:${KDE_INSTALL_INCLUDEDIR}/kwin>")
set_target_properties(kwinglutils PROPERTIES
VERSION ${KWINEFFECTS_VERSION}
SOVERSION ${KWINEFFECTS_SOVERSION}
)
install(TARGETS kwinglutils EXPORT KWinEffectsTargets ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
install(FILES
${CMAKE_CURRENT_BINARY_DIR}/kwinconfig.h
${CMAKE_CURRENT_BINARY_DIR}/kwineffects_export.h
${CMAKE_CURRENT_BINARY_DIR}/kwinglutils_export.h
colorspace.h
glframebuffer.h
glplatform.h
glshader.h
glshadermanager.h
gltexture.h
glutils.h
glutils_funcs.h
glvertexbuffer.h
kwinanimationeffect.h
kwineffects.h
kwinglobals.h
kwinoffscreeneffect.h
kwinoffscreenquickview.h
kwinquickeffect.h
rendertarget.h
renderviewport.h
DESTINATION ${KDE_INSTALL_INCLUDEDIR}/kwin/libkwineffects COMPONENT Devel)
set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KWinEffects")
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/KWinEffectsConfig.cmake"
"${CMAKE_CURRENT_BINARY_DIR}/KWinEffectsConfigVersion.cmake"
DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
COMPONENT Devel )
configure_package_config_file(
"${CMAKE_CURRENT_SOURCE_DIR}/KWinEffectsConfig.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/KWinEffectsConfig.cmake"
INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR}
)
install(EXPORT KWinEffectsTargets DESTINATION "${CMAKECONFIG_INSTALL_DIR}" FILE KWinEffectsTargets.cmake NAMESPACE KWinEffects:: )

@ -1,11 +0,0 @@
@PACKAGE_INIT@
include(CMakeFindDependencyMacro)
find_dependency(Qt6Core "@QT_MIN_VERSION@")
find_dependency(Qt6Gui "@QT_MIN_VERSION@")
find_dependency(KF6Config "@KF6_MIN_VERSION@")
find_dependency(KF6CoreAddons "@KF6_MIN_VERSION@")
find_dependency(KF6WindowSystem "@KF6_MIN_VERSION@")
@PACKAGE_SETUP_KWINEFFECTS_AUTOMOC_VARIABLES@
include("${CMAKE_CURRENT_LIST_DIR}/KWinEffectsTargets.cmake")

@ -1,22 +0,0 @@
/** @mainpage KWin Effects Library
<p>
@ref kwineffects is a library for implementing window transition effect
plugins for KWin.
@authors
Lubos Lunak \<l.lunak@kde.org\><br>
Rivo Laks \<rivolaks@hot.ee\><br>
Lucas Murray \<lmurray@undefinedfire.com\><br>
Fredrik Höglund \<fredrik@kde.org\><br>
Martin Gräßlin \<mgraesslin@kde.org\>
@maintainers
Martin Gräßlin \<mgraesslin@kde.org\>
@licences
libkwineffects: @gpl
*/
// DOXYGEN_SET_PROJECT_NAME = KWin Effects Library

@ -30,7 +30,7 @@ private:
Q_DISABLE_COPY(FullScreenEffectLock) Q_DISABLE_COPY(FullScreenEffectLock)
}; };
class KWINEFFECTS_EXPORT AniData class KWIN_EXPORT AniData
{ {
public: public:
AniData(); AniData();

@ -9,7 +9,7 @@
#include <QMatrix3x3> #include <QMatrix3x3>
#include <QVector2D> #include <QVector2D>
#include "libkwineffects/kwineffects_export.h" #include "kwin_export.h"
namespace KWin namespace KWin
{ {
@ -24,7 +24,7 @@ enum class NamedColorimetry {
* Red, green and blue define the chromaticities ("absolute colors") of the red, green and blue LEDs on a display in xy coordinates * Red, green and blue define the chromaticities ("absolute colors") of the red, green and blue LEDs on a display in xy coordinates
* White defines the the chromaticity of the reference white in xy coordinates * White defines the the chromaticity of the reference white in xy coordinates
*/ */
class KWINEFFECTS_EXPORT Colorimetry class KWIN_EXPORT Colorimetry
{ {
public: public:
static constexpr Colorimetry createFromName(NamedColorimetry name); static constexpr Colorimetry createFromName(NamedColorimetry name);
@ -53,7 +53,7 @@ enum class NamedTransferFunction {
* Describes the meaning of encoded color values, with additional metadata for how to convert between different encodings * Describes the meaning of encoded color values, with additional metadata for how to convert between different encodings
* Note that not all properties of this description are relevant in all contexts * Note that not all properties of this description are relevant in all contexts
*/ */
class KWINEFFECTS_EXPORT ColorDescription class KWIN_EXPORT ColorDescription
{ {
public: public:
/** /**

@ -6,10 +6,10 @@
#pragma once #pragma once
#include "libkwineffects/kwineffects_export.h" #include "libkwineffects/kwinglobals.h"
#include <QAction> #include <QAction>
#include <QObject> #include <QObject>
#include <kwinglobals.h>
namespace KWin namespace KWin
{ {
@ -21,7 +21,7 @@ class Effect;
* This class helps us simplify this process, especially in the cases where we want activation to happen * This class helps us simplify this process, especially in the cases where we want activation to happen
* progressively, like through a touch our touchpad events. * progressively, like through a touch our touchpad events.
*/ */
class KWINEFFECTS_EXPORT EffectTogglableState : public QObject class KWIN_EXPORT EffectTogglableState : public QObject
{ {
Q_OBJECT Q_OBJECT
public: public:
@ -99,7 +99,7 @@ private:
friend class EffectTogglableTouchBorder; friend class EffectTogglableTouchBorder;
}; };
class KWINEFFECTS_EXPORT EffectTogglableGesture : public QObject class KWIN_EXPORT EffectTogglableGesture : public QObject
{ {
public: public:
/** /**
@ -119,7 +119,7 @@ private:
EffectTogglableState *const m_state; EffectTogglableState *const m_state;
}; };
class KWINEFFECTS_EXPORT EffectTogglableTouchBorder : public QObject class KWIN_EXPORT EffectTogglableTouchBorder : public QObject
{ {
public: public:
/** /**

@ -9,7 +9,7 @@
SPDX-License-Identifier: GPL-2.0-or-later SPDX-License-Identifier: GPL-2.0-or-later
*/ */
#pragma once #pragma once
#include "libkwineffects/kwinglutils_export.h" #include "kwin_export.h"
#include <QRect> #include <QRect>
#include <QStack> #include <QStack>
@ -23,7 +23,7 @@ class RenderTarget;
class RenderViewport; class RenderViewport;
// Cleans up all resources hold by the GL Context // Cleans up all resources hold by the GL Context
void KWINGLUTILS_EXPORT cleanupGL(); void KWIN_EXPORT cleanupGL();
/** /**
* @short OpenGL framebuffer object * @short OpenGL framebuffer object
@ -33,7 +33,7 @@ void KWINGLUTILS_EXPORT cleanupGL();
* *
* @author Rivo Laks <rivolaks@hot.ee> * @author Rivo Laks <rivolaks@hot.ee>
*/ */
class KWINGLUTILS_EXPORT GLFramebuffer class KWIN_EXPORT GLFramebuffer
{ {
public: public:
enum Attachment { enum Attachment {

@ -10,7 +10,6 @@
#pragma once #pragma once
#include "libkwineffects/kwinglobals.h" #include "libkwineffects/kwinglobals.h"
#include "libkwineffects/kwinglutils_export.h"
#include "openglcontext.h" #include "openglcontext.h"
#include <QByteArray> #include <QByteArray>
@ -155,7 +154,7 @@ enum ChipClass {
}; };
// clang-format on // clang-format on
class KWINGLUTILS_EXPORT GLPlatform class KWIN_EXPORT GLPlatform
{ {
public: public:
~GLPlatform(); ~GLPlatform();

@ -10,7 +10,6 @@
*/ */
#pragma once #pragma once
#include "colorspace.h" #include "colorspace.h"
#include "libkwineffects/kwinglutils_export.h"
#include <QColor> #include <QColor>
#include <QMatrix3x3> #include <QMatrix3x3>
@ -23,7 +22,7 @@
namespace KWin namespace KWin
{ {
class KWINGLUTILS_EXPORT GLShader class KWIN_EXPORT GLShader
{ {
public: public:
enum Flags { enum Flags {

@ -9,7 +9,7 @@
SPDX-License-Identifier: GPL-2.0-or-later SPDX-License-Identifier: GPL-2.0-or-later
*/ */
#pragma once #pragma once
#include "libkwineffects/kwinglutils_export.h" #include "kwin_export.h"
#include <QByteArray> #include <QByteArray>
#include <QFlags> #include <QFlags>
@ -44,7 +44,7 @@ Q_DECLARE_FLAGS(ShaderTraits, ShaderTrait)
* @author Martin Gräßlin <mgraesslin@kde.org> * @author Martin Gräßlin <mgraesslin@kde.org>
* @since 4.7 * @since 4.7
*/ */
class KWINGLUTILS_EXPORT ShaderManager class KWIN_EXPORT ShaderManager
{ {
public: public:
explicit ShaderManager(); explicit ShaderManager();
@ -177,7 +177,7 @@ private:
* *
* @since 4.10 * @since 4.10
*/ */
class KWINGLUTILS_EXPORT ShaderBinder class KWIN_EXPORT ShaderBinder
{ {
public: public:
/** /**

@ -13,7 +13,6 @@
#include "libkwineffects/glplatform.h" #include "libkwineffects/glplatform.h"
#include "libkwineffects/glutils.h" #include "libkwineffects/glutils.h"
#include "libkwineffects/glutils_funcs.h" #include "libkwineffects/glutils_funcs.h"
#include "libkwineffects/kwinconfig.h" // KWIN_HAVE_OPENGL
#include "libkwineffects/kwineffects.h" #include "libkwineffects/kwineffects.h"
#include "logging_p.h" #include "logging_p.h"

@ -10,7 +10,7 @@
#pragma once #pragma once
#include "libkwineffects/kwinglutils_export.h" #include "kwin_export.h"
#include <QExplicitlySharedDataPointer> #include <QExplicitlySharedDataPointer>
#include <QMatrix4x4> #include <QMatrix4x4>
@ -45,7 +45,7 @@ enum TextureCoordinateType {
UnnormalizedCoordinates, UnnormalizedCoordinates,
}; };
class KWINGLUTILS_EXPORT GLTexture class KWIN_EXPORT GLTexture
{ {
public: public:
explicit GLTexture(GLenum target); explicit GLTexture(GLenum target);

@ -12,8 +12,6 @@
#pragma once #pragma once
#include "libkwineffects/glutils.h" #include "libkwineffects/glutils.h"
#include "libkwineffects/kwinconfig.h" // KWIN_HAVE_OPENGL
#include "libkwineffects/kwinglutils_export.h"
#include <QImage> #include <QImage>
#include <QMatrix4x4> #include <QMatrix4x4>
@ -26,7 +24,7 @@ namespace KWin
// forward declarations // forward declarations
class GLVertexBuffer; class GLVertexBuffer;
class KWINGLUTILS_EXPORT GLTexturePrivate class KWIN_EXPORT GLTexturePrivate
: public QSharedData : public QSharedData
{ {
public: public:

@ -17,7 +17,6 @@
#include "libkwineffects/gltexture.h" #include "libkwineffects/gltexture.h"
#include "libkwineffects/glutils_funcs.h" #include "libkwineffects/glutils_funcs.h"
#include "libkwineffects/glvertexbuffer.h" #include "libkwineffects/glvertexbuffer.h"
#include "libkwineffects/kwinglutils_export.h"
#include <QByteArray> #include <QByteArray>
#include <QList> #include <QList>
@ -30,18 +29,18 @@ namespace KWin
// well as checking for GL version and extensions // well as checking for GL version and extensions
// Note that GL context has to be created by the time this function is called // Note that GL context has to be created by the time this function is called
typedef void (*resolveFuncPtr)(); typedef void (*resolveFuncPtr)();
void KWINGLUTILS_EXPORT initGL(const std::function<resolveFuncPtr(const char *)> &resolveFunction); void KWIN_EXPORT initGL(const std::function<resolveFuncPtr(const char *)> &resolveFunction);
// Cleans up all resources hold by the GL Context // Cleans up all resources hold by the GL Context
void KWINGLUTILS_EXPORT cleanupGL(); void KWIN_EXPORT cleanupGL();
bool KWINGLUTILS_EXPORT hasGLVersion(int major, int minor, int release = 0); bool KWIN_EXPORT hasGLVersion(int major, int minor, int release = 0);
// use for both OpenGL and GLX extensions // use for both OpenGL and GLX extensions
bool KWINGLUTILS_EXPORT hasGLExtension(const QByteArray &extension); bool KWIN_EXPORT hasGLExtension(const QByteArray &extension);
// detect OpenGL error (add to various places in code to pinpoint the place) // detect OpenGL error (add to various places in code to pinpoint the place)
bool KWINGLUTILS_EXPORT checkGLError(const char *txt); bool KWIN_EXPORT checkGLError(const char *txt);
QList<QByteArray> KWINGLUTILS_EXPORT openGLExtensions(); QList<QByteArray> KWIN_EXPORT openGLExtensions();
} // namespace } // namespace

@ -9,7 +9,7 @@
#pragma once #pragma once
#include "libkwineffects/kwinglutils_export.h" #include "kwin_export.h"
#include <epoxy/gl.h> #include <epoxy/gl.h>
#include <functional> #include <functional>
@ -31,7 +31,7 @@ namespace KWin
{ {
typedef void (*resolveFuncPtr)(); typedef void (*resolveFuncPtr)();
void KWINGLUTILS_EXPORT glResolveFunctions(const std::function<resolveFuncPtr(const char *)> &resolveFunction); void KWIN_EXPORT glResolveFunctions(const std::function<resolveFuncPtr(const char *)> &resolveFunction);
// GL_ARB_robustness / GL_EXT_robustness // GL_ARB_robustness / GL_EXT_robustness
using glGetGraphicsResetStatus_func = GLenum (*)(); using glGetGraphicsResetStatus_func = GLenum (*)();
@ -39,8 +39,8 @@ using glReadnPixels_func = void (*)(GLint x, GLint y, GLsizei width, GLsizei hei
GLenum format, GLenum type, GLsizei bufSize, GLvoid *data); GLenum format, GLenum type, GLsizei bufSize, GLvoid *data);
using glGetnUniformfv_func = void (*)(GLuint program, GLint location, GLsizei bufSize, GLfloat *params); using glGetnUniformfv_func = void (*)(GLuint program, GLint location, GLsizei bufSize, GLfloat *params);
extern KWINGLUTILS_EXPORT glGetGraphicsResetStatus_func glGetGraphicsResetStatus; extern KWIN_EXPORT glGetGraphicsResetStatus_func glGetGraphicsResetStatus;
extern KWINGLUTILS_EXPORT glReadnPixels_func glReadnPixels; extern KWIN_EXPORT glReadnPixels_func glReadnPixels;
extern KWINGLUTILS_EXPORT glGetnUniformfv_func glGetnUniformfv; extern KWIN_EXPORT glGetnUniformfv_func glGetnUniformfv;
} // namespace } // namespace

@ -10,7 +10,6 @@
*/ */
#pragma once #pragma once
#include "kwineffects.h" #include "kwineffects.h"
#include "libkwineffects/kwinglutils_export.h"
#include <QColor> #include <QColor>
#include <QRegion> #include <QRegion>
@ -54,7 +53,7 @@ class GLVertexBufferPrivate;
* @author Martin Gräßlin <mgraesslin@kde.org> * @author Martin Gräßlin <mgraesslin@kde.org>
* @since 4.6 * @since 4.6
*/ */
class KWINGLUTILS_EXPORT GLVertexBuffer class KWIN_EXPORT GLVertexBuffer
{ {
public: public:
/** /**

@ -10,7 +10,8 @@
#pragma once #pragma once
#include "libkwineffects/kwineffects_export.h" #include "kwin_export.h"
#include "libkwineffects/kwinoffscreeneffect.h" #include "libkwineffects/kwinoffscreeneffect.h"
#include <QEasingCurve> #include <QEasingCurve>
#include <QElapsedTimer> #include <QElapsedTimer>
@ -19,7 +20,7 @@
namespace KWin namespace KWin
{ {
class KWINEFFECTS_EXPORT FPx2 class KWIN_EXPORT FPx2
{ {
public: public:
FPx2() FPx2()
@ -190,7 +191,7 @@ class AnimationEffectPrivate;
* *
* @since 4.8 * @since 4.8
*/ */
class KWINEFFECTS_EXPORT AnimationEffect : public CrossFadeEffect class KWIN_EXPORT AnimationEffect : public CrossFadeEffect
{ {
Q_OBJECT Q_OBJECT

@ -1,25 +0,0 @@
/*
This file includes config #define's for KWin's libraries
that are installed. Installed files and files using them
should be using these instead of their own.
*/
#ifndef KWINCONFIG_H
#define KWINCONFIG_H
#define KWIN_PLUGIN_VERSION_STRING "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}"
/*
These should be primarily used to detect what kind of compositing
support is available.
*/
#cmakedefine01 HAVE_GLX
#cmakedefine01 HAVE_DL_LIBRARY
#endif

@ -12,8 +12,8 @@
#pragma once #pragma once
#include "libkwineffects/kwinconfig.h" #include "kwin_export.h"
#include "libkwineffects/kwineffects_export.h"
#include "libkwineffects/kwinglobals.h" #include "libkwineffects/kwinglobals.h"
#include <QEasingCurve> #include <QEasingCurve>
@ -188,7 +188,7 @@ enum EffectFrameStyle {
/** /**
* Scale a rect by a scalar. * Scale a rect by a scalar.
*/ */
KWINEFFECTS_EXPORT inline QRectF scaledRect(const QRectF &rect, qreal scale) KWIN_EXPORT inline QRectF scaledRect(const QRectF &rect, qreal scale)
{ {
return QRectF{rect.x() * scale, rect.y() * scale, rect.width() * scale, rect.height() * scale}; return QRectF{rect.x() * scale, rect.y() * scale, rect.width() * scale, rect.height() * scale};
} }
@ -196,7 +196,7 @@ KWINEFFECTS_EXPORT inline QRectF scaledRect(const QRectF &rect, qreal scale)
/** /**
* Round a vector to nearest integer. * Round a vector to nearest integer.
*/ */
KWINEFFECTS_EXPORT inline QVector2D roundVector(const QVector2D &input) KWIN_EXPORT inline QVector2D roundVector(const QVector2D &input)
{ {
return QVector2D(std::round(input.x()), std::round(input.y())); return QVector2D(std::round(input.x()), std::round(input.y()));
} }
@ -207,7 +207,7 @@ KWINEFFECTS_EXPORT inline QVector2D roundVector(const QVector2D &input)
* By default, QPointF::toPoint() rounds which can cause problems in certain * By default, QPointF::toPoint() rounds which can cause problems in certain
* cases. * cases.
*/ */
KWINEFFECTS_EXPORT inline QPoint flooredPoint(const QPointF &point) KWIN_EXPORT inline QPoint flooredPoint(const QPointF &point)
{ {
return QPoint(std::floor(point.x()), std::floor(point.y())); return QPoint(std::floor(point.x()), std::floor(point.y()));
} }
@ -277,7 +277,7 @@ KWINEFFECTS_EXPORT inline QPoint flooredPoint(const QPointF &point)
* *
* There is in general no need to call the matching doneCurrent method. * There is in general no need to call the matching doneCurrent method.
*/ */
class KWINEFFECTS_EXPORT Effect : public QObject class KWIN_EXPORT Effect : public QObject
{ {
Q_OBJECT Q_OBJECT
public: public:
@ -687,7 +687,7 @@ protected:
/** /**
* Prefer the KWIN_EFFECT_FACTORY macros. * Prefer the KWIN_EFFECT_FACTORY macros.
*/ */
class KWINEFFECTS_EXPORT EffectPluginFactory : public KPluginFactory class KWIN_EXPORT EffectPluginFactory : public KPluginFactory
{ {
Q_OBJECT Q_OBJECT
public: public:
@ -785,7 +785,7 @@ public:
* desktop or create a special input window to receive mouse and keyboard * desktop or create a special input window to receive mouse and keyboard
* events. * events.
*/ */
class KWINEFFECTS_EXPORT EffectsHandler : public QObject class KWIN_EXPORT EffectsHandler : public QObject
{ {
Q_OBJECT Q_OBJECT
Q_PROPERTY(int currentDesktop READ currentDesktop WRITE setCurrentDesktop NOTIFY desktopChanged) Q_PROPERTY(int currentDesktop READ currentDesktop WRITE setCurrentDesktop NOTIFY desktopChanged)
@ -1705,7 +1705,7 @@ protected:
/** /**
* The EffectScreen class represents a screen used by/for Effect classes. * The EffectScreen class represents a screen used by/for Effect classes.
*/ */
class KWINEFFECTS_EXPORT EffectScreen : public QObject class KWIN_EXPORT EffectScreen : public QObject
{ {
Q_OBJECT Q_OBJECT
Q_PROPERTY(QRect geometry READ geometry NOTIFY geometryChanged) Q_PROPERTY(QRect geometry READ geometry NOTIFY geometryChanged)
@ -1803,7 +1803,7 @@ class EffectWindowVisibleRef;
* The purpose is to hide internal data and also to serve as a single * The purpose is to hide internal data and also to serve as a single
* representation for the case when Client/Unmanaged becomes Deleted. * representation for the case when Client/Unmanaged becomes Deleted.
*/ */
class KWINEFFECTS_EXPORT EffectWindow : public QObject class KWIN_EXPORT EffectWindow : public QObject
{ {
Q_OBJECT Q_OBJECT
Q_PROPERTY(QRectF geometry READ frameGeometry) Q_PROPERTY(QRectF geometry READ frameGeometry)
@ -2614,7 +2614,7 @@ private:
* The EffectWindowDeletedRef provides a convenient way to prevent deleting a closed * The EffectWindowDeletedRef provides a convenient way to prevent deleting a closed
* window until an effect has finished animating it. * window until an effect has finished animating it.
*/ */
class KWINEFFECTS_EXPORT EffectWindowDeletedRef class KWIN_EXPORT EffectWindowDeletedRef
{ {
public: public:
EffectWindowDeletedRef() EffectWindowDeletedRef()
@ -2668,7 +2668,7 @@ private:
* The EffectWindowVisibleRef provides a convenient way to force the visible status of a * The EffectWindowVisibleRef provides a convenient way to force the visible status of a
* window until an effect is finished animating it. * window until an effect is finished animating it.
*/ */
class KWINEFFECTS_EXPORT EffectWindowVisibleRef class KWIN_EXPORT EffectWindowVisibleRef
{ {
public: public:
EffectWindowVisibleRef() EffectWindowVisibleRef()
@ -2728,7 +2728,7 @@ private:
int m_reason; int m_reason;
}; };
class KWINEFFECTS_EXPORT EffectWindowGroup class KWIN_EXPORT EffectWindowGroup
{ {
public: public:
virtual ~EffectWindowGroup(); virtual ~EffectWindowGroup();
@ -2753,7 +2753,7 @@ struct GLVertex3D
* A vertex is one position in a window. WindowQuad consists of four WindowVertex objects * A vertex is one position in a window. WindowQuad consists of four WindowVertex objects
* and represents one part of a window. * and represents one part of a window.
*/ */
class KWINEFFECTS_EXPORT WindowVertex class KWIN_EXPORT WindowVertex
{ {
public: public:
WindowVertex(); WindowVertex();
@ -2793,7 +2793,7 @@ private:
* WindowQuads consists of four WindowVertex objects and represents one part of a window. * WindowQuads consists of four WindowVertex objects and represents one part of a window.
*/ */
// NOTE: This class expects the (original) vertices to be in the clockwise order starting from topleft. // NOTE: This class expects the (original) vertices to be in the clockwise order starting from topleft.
class KWINEFFECTS_EXPORT WindowQuad class KWIN_EXPORT WindowQuad
{ {
public: public:
WindowQuad(); WindowQuad();
@ -2811,7 +2811,7 @@ private:
WindowVertex verts[4]; WindowVertex verts[4];
}; };
class KWINEFFECTS_EXPORT WindowQuadList class KWIN_EXPORT WindowQuadList
: public QList<WindowQuad> : public QList<WindowQuad>
{ {
public: public:
@ -2828,7 +2828,7 @@ public:
* for easily converting from WindowQuad and related classes to lists of * for easily converting from WindowQuad and related classes to lists of
* GLVertex2D. This class assumes rendering happens as unindexed triangles. * GLVertex2D. This class assumes rendering happens as unindexed triangles.
*/ */
class KWINEFFECTS_EXPORT RenderGeometry : public QList<GLVertex2D> class KWIN_EXPORT RenderGeometry : public QList<GLVertex2D>
{ {
public: public:
/** /**
@ -2936,7 +2936,7 @@ private:
VertexSnappingMode m_vertexSnappingMode = VertexSnappingMode::Round; VertexSnappingMode m_vertexSnappingMode = VertexSnappingMode::Round;
}; };
class KWINEFFECTS_EXPORT WindowPrePaintData class KWIN_EXPORT WindowPrePaintData
{ {
public: public:
int mask; int mask;
@ -2960,7 +2960,7 @@ public:
void setTransformed(); void setTransformed();
}; };
class KWINEFFECTS_EXPORT PaintData class KWIN_EXPORT PaintData
{ {
public: public:
virtual ~PaintData(); virtual ~PaintData();
@ -3129,7 +3129,7 @@ private:
const std::unique_ptr<PaintDataPrivate> d; const std::unique_ptr<PaintDataPrivate> d;
}; };
class KWINEFFECTS_EXPORT WindowPaintData : public PaintData class KWIN_EXPORT WindowPaintData : public PaintData
{ {
public: public:
WindowPaintData(); WindowPaintData();
@ -3291,7 +3291,7 @@ private:
const std::unique_ptr<WindowPaintDataPrivate> d; const std::unique_ptr<WindowPaintDataPrivate> d;
}; };
class KWINEFFECTS_EXPORT ScreenPrePaintData class KWIN_EXPORT ScreenPrePaintData
{ {
public: public:
int mask; int mask;
@ -3303,7 +3303,7 @@ public:
* @internal * @internal
*/ */
template<typename T> template<typename T>
class KWINEFFECTS_EXPORT Motion class KWIN_EXPORT Motion
{ {
public: public:
/** /**
@ -3402,7 +3402,7 @@ private:
* 1D space. Although it can be used directly by itself it is * 1D space. Although it can be used directly by itself it is
* recommended to use a motion manager instead. * recommended to use a motion manager instead.
*/ */
class KWINEFFECTS_EXPORT Motion1D : public Motion<double> class KWIN_EXPORT Motion1D : public Motion<double>
{ {
public: public:
explicit Motion1D(double initial = 0.0, double strength = 0.08, double smoothness = 4.0); explicit Motion1D(double initial = 0.0, double strength = 0.08, double smoothness = 4.0);
@ -3417,7 +3417,7 @@ public:
* 2D space. Although it can be used directly by itself it is * 2D space. Although it can be used directly by itself it is
* recommended to use a motion manager instead. * recommended to use a motion manager instead.
*/ */
class KWINEFFECTS_EXPORT Motion2D : public Motion<QPointF> class KWIN_EXPORT Motion2D : public Motion<QPointF>
{ {
public: public:
explicit Motion2D(QPointF initial = QPointF(), double strength = 0.08, double smoothness = 4.0); explicit Motion2D(QPointF initial = QPointF(), double strength = 0.08, double smoothness = 4.0);
@ -3437,7 +3437,7 @@ public:
* are moving at any given time it can also be used as a notifier as * are moving at any given time it can also be used as a notifier as
* to see whether the effect is active or not. * to see whether the effect is active or not.
*/ */
class KWINEFFECTS_EXPORT WindowMotionManager class KWIN_EXPORT WindowMotionManager
{ {
public: public:
/** /**
@ -3601,7 +3601,7 @@ private:
* another that doesn't. * another that doesn't.
* It is recommended to use this class whenever displaying text. * It is recommended to use this class whenever displaying text.
*/ */
class KWINEFFECTS_EXPORT EffectFrame class KWIN_EXPORT EffectFrame
{ {
public: public:
EffectFrame(); EffectFrame();
@ -3690,7 +3690,7 @@ private:
/** /**
* The TimeLine class is a helper for controlling animations. * The TimeLine class is a helper for controlling animations.
*/ */
class KWINEFFECTS_EXPORT TimeLine class KWIN_EXPORT TimeLine
{ {
public: public:
/** /**
@ -3941,7 +3941,7 @@ private:
/** /**
* Pointer to the global EffectsHandler object. * Pointer to the global EffectsHandler object.
*/ */
extern KWINEFFECTS_EXPORT EffectsHandler *effects; extern KWIN_EXPORT EffectsHandler *effects;
/*************************************************************** /***************************************************************
WindowVertex WindowVertex

@ -9,6 +9,8 @@
#pragma once #pragma once
#include "config-kwin.h"
#include <QCoreApplication> #include <QCoreApplication>
#include <QImage> #include <QImage>
#include <QPoint> #include <QPoint>
@ -16,8 +18,6 @@
#include <kwin_export.h> #include <kwin_export.h>
#include "libkwineffects/kwinconfig.h"
#define KWIN_QT5_PORTING 0 #define KWIN_QT5_PORTING 0
namespace KWin namespace KWin

@ -29,7 +29,7 @@ class ShaderEffectPrivate;
* If a window is redirected into offscreen texture, the deform() function will be * If a window is redirected into offscreen texture, the deform() function will be
* called to transform the offscreen texture. * called to transform the offscreen texture.
*/ */
class KWINEFFECTS_EXPORT OffscreenEffect : public Effect class KWIN_EXPORT OffscreenEffect : public Effect
{ {
Q_OBJECT Q_OBJECT
@ -93,7 +93,7 @@ private:
* If window geometry changes shape after this point our "old" pixmap is resized to fit approximately matching * If window geometry changes shape after this point our "old" pixmap is resized to fit approximately matching
* frame geometry * frame geometry
*/ */
class KWINEFFECTS_EXPORT CrossFadeEffect : public Effect class KWIN_EXPORT CrossFadeEffect : public Effect
{ {
Q_OBJECT Q_OBJECT
public: public:

@ -9,14 +9,12 @@
#pragma once #pragma once
#include "libkwineffects/kwineffects.h"
#include <QObject> #include <QObject>
#include <QRect> #include <QRect>
#include <QUrl> #include <QUrl>
#include "libkwineffects/kwineffects_export.h"
#include "libkwineffects/kwineffects.h"
#include <memory> #include <memory>
class QKeyEvent; class QKeyEvent;
@ -44,7 +42,7 @@ class OffscreenQuickView;
* blitting is performed when we update our FBO to keep kwin's render loop * blitting is performed when we update our FBO to keep kwin's render loop
* as fast as possible. * as fast as possible.
*/ */
class KWINEFFECTS_EXPORT OffscreenQuickView : public QObject class KWIN_EXPORT OffscreenQuickView : public QObject
{ {
Q_OBJECT Q_OBJECT
@ -155,7 +153,7 @@ private:
* adding QML support. This will represent a context * adding QML support. This will represent a context
* powered by an engine * powered by an engine
*/ */
class KWINEFFECTS_EXPORT OffscreenQuickScene : public OffscreenQuickView class KWIN_EXPORT OffscreenQuickScene : public OffscreenQuickView
{ {
public: public:
explicit OffscreenQuickScene(ExportMode exportMode = ExportMode::Texture); explicit OffscreenQuickScene(ExportMode exportMode = ExportMode::Texture);

@ -25,7 +25,7 @@ class QuickSceneEffectPrivate;
* *
* @see QuickSceneEffect, OffscreenQuickView * @see QuickSceneEffect, OffscreenQuickView
*/ */
class KWINEFFECTS_EXPORT QuickSceneView : public OffscreenQuickView class KWIN_EXPORT QuickSceneView : public OffscreenQuickView
{ {
Q_OBJECT Q_OBJECT
Q_PROPERTY(QuickSceneEffect *effect READ effect CONSTANT) Q_PROPERTY(QuickSceneEffect *effect READ effect CONSTANT)
@ -71,7 +71,7 @@ private:
* *
* @see QuickSceneView * @see QuickSceneView
*/ */
class KWINEFFECTS_EXPORT QuickSceneEffect : public Effect class KWIN_EXPORT QuickSceneEffect : public Effect
{ {
Q_OBJECT Q_OBJECT
Q_PROPERTY(QuickSceneView *activeView READ activeView NOTIFY activeViewChanged) Q_PROPERTY(QuickSceneView *activeView READ activeView NOTIFY activeViewChanged)

@ -7,7 +7,7 @@
SPDX-License-Identifier: GPL-2.0-or-later SPDX-License-Identifier: GPL-2.0-or-later
*/ */
#pragma once #pragma once
#include "libkwineffects/kwinglutils_export.h" #include "kwin_export.h"
#include "version.h" #include "version.h"
#include <stdint.h> #include <stdint.h>
@ -19,7 +19,7 @@
namespace KWin namespace KWin
{ {
class KWINGLUTILS_EXPORT OpenGlContext class KWIN_EXPORT OpenGlContext
{ {
public: public:
explicit OpenGlContext(); explicit OpenGlContext();

@ -7,7 +7,6 @@
#pragma once #pragma once
#include "libkwineffects/colorspace.h" #include "libkwineffects/colorspace.h"
#include "libkwineffects/kwinglutils_export.h"
#include <QImage> #include <QImage>
#include <QMatrix4x4> #include <QMatrix4x4>
@ -19,7 +18,7 @@ namespace KWin
class GLFramebuffer; class GLFramebuffer;
class GLTexture; class GLTexture;
class KWINGLUTILS_EXPORT RenderTarget class KWIN_EXPORT RenderTarget
{ {
public: public:
explicit RenderTarget(GLFramebuffer *fbo, const ColorDescription &colorDescription = ColorDescription::sRGB); explicit RenderTarget(GLFramebuffer *fbo, const ColorDescription &colorDescription = ColorDescription::sRGB);

@ -6,7 +6,7 @@
#pragma once #pragma once
#include "libkwineffects/kwineffects_export.h" #include "kwin_export.h"
#include <QMatrix4x4> #include <QMatrix4x4>
#include <QRectF> #include <QRectF>
@ -17,7 +17,7 @@ namespace KWin
class RenderTarget; class RenderTarget;
class KWINEFFECTS_EXPORT RenderViewport class KWIN_EXPORT RenderViewport
{ {
public: public:
explicit RenderViewport(const QRectF &renderRect, double scale, const RenderTarget &renderTarget); explicit RenderViewport(const QRectF &renderRect, double scale, const RenderTarget &renderTarget);

@ -7,7 +7,7 @@
SPDX-License-Identifier: GPL-2.0-or-later SPDX-License-Identifier: GPL-2.0-or-later
*/ */
#pragma once #pragma once
#include "libkwineffects/kwinglutils_export.h" #include "kwin_export.h"
#include <QByteArray> #include <QByteArray>
#include <QString> #include <QString>
@ -15,7 +15,7 @@
namespace KWin namespace KWin
{ {
class KWINGLUTILS_EXPORT Version class KWIN_EXPORT Version
{ {
public: public:
Version(uint32_t major, uint32_t minor, uint32_t patch = 0); Version(uint32_t major, uint32_t minor, uint32_t patch = 0);

@ -9,9 +9,9 @@
#include "eglcontext.h" #include "eglcontext.h"
#include "core/graphicsbuffer.h" #include "core/graphicsbuffer.h"
#include "egldisplay.h" #include "egldisplay.h"
#include "glutils.h"
#include "kwineglimagetexture.h" #include "kwineglimagetexture.h"
#include "kwineglutils_p.h" #include "kwineglutils_p.h"
#include "libkwineffects/glutils.h"
#include "utils/common.h" #include "utils/common.h"
#include "utils/drm_format_helper.h" #include "utils/drm_format_helper.h"
#include "utils/egl_context_attribute_builder.h" #include "utils/egl_context_attribute_builder.h"

@ -8,9 +8,8 @@
*/ */
#pragma once #pragma once
#include "gltexture.h" #include "libkwineffects/gltexture.h"
#include "kwin_export.h" #include "libkwineffects/openglcontext.h"
#include "openglcontext.h"
#include <QByteArray> #include <QByteArray>
#include <QList> #include <QList>

@ -10,7 +10,6 @@
#pragma once #pragma once
#include "libkwineffects/gltexture.h" #include "libkwineffects/gltexture.h"
#include "libkwineffects/kwinglutils_export.h"
typedef void *EGLImageKHR; typedef void *EGLImageKHR;
typedef void *EGLClientBuffer; typedef void *EGLClientBuffer;
@ -20,7 +19,7 @@ namespace KWin
class EglDisplay; class EglDisplay;
class KWINGLUTILS_EXPORT EGLImageTexture : public GLTexture class KWIN_EXPORT EGLImageTexture : public GLTexture
{ {
public: public:
explicit EGLImageTexture(EglDisplay *display, EGLImageKHR image, uint textureId, int internalFormat, const QSize &size, uint32_t target); explicit EGLImageTexture(EglDisplay *display, EGLImageKHR image, uint textureId, int internalFormat, const QSize &size, uint32_t target);

@ -8,8 +8,4 @@ set(contrast_SOURCES
main.cpp main.cpp
) )
kwin_add_builtin_effect(contrast ${contrast_SOURCES}) kwin_add_builtin_effect(contrast ${contrast_SOURCES})
target_link_libraries(contrast PRIVATE target_link_libraries(contrast PRIVATE kwin)
kwin
kwineffects
kwinglutils
)

@ -8,7 +8,6 @@ set(blendchanges_SOURCES
kwin_add_builtin_effect(blendchanges ${blendchanges_SOURCES}) kwin_add_builtin_effect(blendchanges ${blendchanges_SOURCES})
target_link_libraries(blendchanges PRIVATE target_link_libraries(blendchanges PRIVATE
kwineffects kwin
kwinglutils
Qt::DBus Qt::DBus
) )

@ -14,8 +14,6 @@ kconfig_add_kcfg_files(blur_SOURCES
kwin_add_builtin_effect(blur ${blur_SOURCES}) kwin_add_builtin_effect(blur ${blur_SOURCES})
target_link_libraries(blur PRIVATE target_link_libraries(blur PRIVATE
kwin kwin
kwineffects
kwinglutils
KF6::ConfigGui KF6::ConfigGui

@ -8,8 +8,7 @@ kwin_add_builtin_effect(colorblindnesscorrection
) )
kconfig_add_kcfg_files(colorblindnesscorrection colorblindnesscorrection_settings.kcfgc GENERATE_MOC) kconfig_add_kcfg_files(colorblindnesscorrection colorblindnesscorrection_settings.kcfgc GENERATE_MOC)
target_link_libraries(colorblindnesscorrection PRIVATE target_link_libraries(colorblindnesscorrection PRIVATE
kwineffects kwin
kwinglutils
KF6::ConfigCore KF6::ConfigCore
KF6::ConfigGui KF6::ConfigGui

@ -8,7 +8,7 @@ set(colorpicker_SOURCES
kwin_add_builtin_effect(colorpicker ${colorpicker_SOURCES}) kwin_add_builtin_effect(colorpicker ${colorpicker_SOURCES})
target_link_libraries(colorpicker PRIVATE target_link_libraries(colorpicker PRIVATE
kwineffects kwin
KF6::I18n KF6::I18n

@ -12,7 +12,7 @@ kconfig_add_kcfg_files(diminactive_SOURCES
kwin_add_builtin_effect(diminactive ${diminactive_SOURCES}) kwin_add_builtin_effect(diminactive ${diminactive_SOURCES})
target_link_libraries(diminactive PRIVATE target_link_libraries(diminactive PRIVATE
kwineffects kwin
KF6::ConfigGui KF6::ConfigGui
) )

@ -13,7 +13,7 @@ kconfig_add_kcfg_files(fallapart_SOURCES
kwin_add_builtin_effect(fallapart ${fallapart_SOURCES}) kwin_add_builtin_effect(fallapart ${fallapart_SOURCES})
target_link_libraries(fallapart PRIVATE target_link_libraries(fallapart PRIVATE
kwineffects kwin
KF6::ConfigGui KF6::ConfigGui
) )

@ -12,7 +12,7 @@ kconfig_add_kcfg_files(glide_SOURCES
kwin_add_builtin_effect(glide ${glide_SOURCES}) kwin_add_builtin_effect(glide ${glide_SOURCES})
target_link_libraries(glide PRIVATE target_link_libraries(glide PRIVATE
kwineffects kwin
KF6::ConfigGui KF6::ConfigGui
) )

@ -9,7 +9,7 @@ set(highlightwindow_SOURCES
kwin_add_builtin_effect(highlightwindow ${highlightwindow_SOURCES}) kwin_add_builtin_effect(highlightwindow ${highlightwindow_SOURCES})
target_link_libraries(highlightwindow PRIVATE target_link_libraries(highlightwindow PRIVATE
kwineffects kwin
Qt::DBus Qt::DBus
) )

@ -9,8 +9,7 @@ set(invert_SOURCES
kwin_add_builtin_effect(invert ${invert_SOURCES}) kwin_add_builtin_effect(invert ${invert_SOURCES})
target_link_libraries(invert PRIVATE target_link_libraries(invert PRIVATE
kwineffects kwin
kwinglutils
KF6::GlobalAccel KF6::GlobalAccel
KF6::I18n KF6::I18n

@ -24,7 +24,7 @@ target_compile_definitions(kwin5_aurorae PRIVATE
target_link_libraries(kwin5_aurorae target_link_libraries(kwin5_aurorae
KDecoration2::KDecoration KDecoration2::KDecoration
kwineffects kwin
KF6::I18n KF6::I18n
KF6::Package KF6::Package
KF6::WindowSystem KF6::WindowSystem

@ -10,7 +10,7 @@ set(kscreen_SOURCES
kconfig_add_kcfg_files(kscreen_SOURCES kscreenconfig.kcfgc) kconfig_add_kcfg_files(kscreen_SOURCES kscreenconfig.kcfgc)
kwin_add_builtin_effect(kscreen ${kscreen_SOURCES}) kwin_add_builtin_effect(kscreen ${kscreen_SOURCES})
target_link_libraries(kscreen PRIVATE target_link_libraries(kscreen PRIVATE
kwineffects kwin
KF6::ConfigGui KF6::ConfigGui
) )

@ -12,7 +12,7 @@ kconfig_add_kcfg_files(magiclamp_SOURCES
kwin_add_builtin_effect(magiclamp ${magiclamp_SOURCES}) kwin_add_builtin_effect(magiclamp ${magiclamp_SOURCES})
target_link_libraries(magiclamp PRIVATE target_link_libraries(magiclamp PRIVATE
kwineffects kwin
KF6::ConfigGui KF6::ConfigGui
) )

@ -12,8 +12,7 @@ kconfig_add_kcfg_files(magnifier_SOURCES
kwin_add_builtin_effect(magnifier ${magnifier_SOURCES}) kwin_add_builtin_effect(magnifier ${magnifier_SOURCES})
target_link_libraries(magnifier PRIVATE target_link_libraries(magnifier PRIVATE
kwineffects kwin
kwinglutils
KF6::ConfigGui KF6::ConfigGui
KF6::ConfigWidgets KF6::ConfigWidgets

@ -13,7 +13,6 @@
// KConfigSkeleton // KConfigSkeleton
#include "magnifierconfig.h" #include "magnifierconfig.h"
#include "libkwineffects/kwinconfig.h"
#include <QAction> #include <QAction>
#include <kstandardaction.h> #include <kstandardaction.h>

@ -12,8 +12,7 @@ kconfig_add_kcfg_files(mouseclick_SOURCES
kwin_add_builtin_effect(mouseclick ${mouseclick_SOURCES}) kwin_add_builtin_effect(mouseclick ${mouseclick_SOURCES})
target_link_libraries(mouseclick PRIVATE target_link_libraries(mouseclick PRIVATE
kwineffects kwin
kwinglutils
KF6::ConfigGui KF6::ConfigGui
KF6::GlobalAccel KF6::GlobalAccel

@ -12,8 +12,7 @@ kconfig_add_kcfg_files(mousemark_SOURCES
kwin_add_builtin_effect(mousemark ${mousemark_SOURCES}) kwin_add_builtin_effect(mousemark ${mousemark_SOURCES})
target_link_libraries(mousemark PRIVATE target_link_libraries(mousemark PRIVATE
kwineffects kwin
kwinglutils
KF6::ConfigGui KF6::ConfigGui
KF6::GlobalAccel KF6::GlobalAccel

@ -16,7 +16,6 @@
#include "mousemarkconfig.h" #include "mousemarkconfig.h"
#include "libkwineffects/glplatform.h" #include "libkwineffects/glplatform.h"
#include "libkwineffects/kwinconfig.h"
#include "libkwineffects/rendertarget.h" #include "libkwineffects/rendertarget.h"
#include "libkwineffects/renderviewport.h" #include "libkwineffects/renderviewport.h"
#include <KGlobalAccel> #include <KGlobalAccel>

@ -5,7 +5,7 @@
kwin_add_builtin_effect(outputlocator main.cpp outputlocator.cpp) kwin_add_builtin_effect(outputlocator main.cpp outputlocator.cpp)
target_link_libraries(outputlocator PRIVATE target_link_libraries(outputlocator PRIVATE
kwineffects kwin
Qt::DBus Qt::DBus
Qt::Quick Qt::Quick
KF6::I18n KF6::I18n

@ -28,7 +28,7 @@ qt6_add_qml_module(overview
) )
target_link_libraries(overview PRIVATE target_link_libraries(overview PRIVATE
kwineffects kwin
KF6::ConfigGui KF6::ConfigGui
KF6::GlobalAccel KF6::GlobalAccel

@ -4,9 +4,9 @@
ecm_add_qml_module(effectsplugin URI "org.kde.kwin.private.effects") ecm_add_qml_module(effectsplugin URI "org.kde.kwin.private.effects")
ecm_target_qml_sources(effectsplugin ecm_target_qml_sources(effectsplugin
SOURCES SOURCES
qml/WindowHeap.qml qml/WindowHeap.qml
qml/WindowHeapDelegate.qml qml/WindowHeapDelegate.qml
) )
@ -17,7 +17,7 @@ target_sources(effectsplugin PRIVATE
) )
target_link_libraries(effectsplugin PRIVATE target_link_libraries(effectsplugin PRIVATE
kwineffects kwin
Qt6::Quick Qt6::Quick
Qt6::Qml Qt6::Qml
KF6::I18n KF6::I18n

@ -9,8 +9,7 @@ set(screenedge_SOURCES
kwin_add_builtin_effect(screenedge ${screenedge_SOURCES}) kwin_add_builtin_effect(screenedge ${screenedge_SOURCES})
target_link_libraries(screenedge PRIVATE target_link_libraries(screenedge PRIVATE
kwineffects kwin
kwinglutils
KF6::Svg KF6::Svg
KF6::ConfigCore KF6::ConfigCore

@ -12,8 +12,7 @@ qt_add_dbus_adaptor(screenshot_SOURCES org.kde.KWin.ScreenShot2.xml screenshotdb
kwin_add_builtin_effect(screenshot ${screenshot_SOURCES}) kwin_add_builtin_effect(screenshot ${screenshot_SOURCES})
target_link_libraries(screenshot PRIVATE target_link_libraries(screenshot PRIVATE
kwineffects kwin
kwinglutils
KF6::Service KF6::Service
KF6::I18n KF6::I18n

@ -9,6 +9,5 @@ set(screentransform_SOURCES
kwin_add_builtin_effect(screentransform ${screentransform_SOURCES}) kwin_add_builtin_effect(screentransform ${screentransform_SOURCES})
target_link_libraries(screentransform PRIVATE target_link_libraries(screentransform PRIVATE
kwineffects kwin
kwinglutils
) )

@ -10,7 +10,7 @@ kconfig_add_kcfg_files(sheet_SOURCES sheetconfig.kcfgc)
kwin_add_builtin_effect(sheet ${sheet_SOURCES}) kwin_add_builtin_effect(sheet ${sheet_SOURCES})
target_link_libraries(sheet PRIVATE target_link_libraries(sheet PRIVATE
kwineffects kwin
KF6::ConfigGui KF6::ConfigGui
) )

@ -10,7 +10,7 @@ set(showfps_SOURCES
kwin_add_builtin_effect(showfps ${showfps_SOURCES}) kwin_add_builtin_effect(showfps ${showfps_SOURCES})
target_link_libraries(showfps PRIVATE target_link_libraries(showfps PRIVATE
kwineffects kwin
KF6::I18n KF6::I18n

@ -8,8 +8,7 @@ set(showpaint_SOURCES
kwin_add_builtin_effect(showpaint ${showpaint_SOURCES}) kwin_add_builtin_effect(showpaint ${showpaint_SOURCES})
target_link_libraries(showpaint PRIVATE target_link_libraries(showpaint PRIVATE
kwineffects kwin
kwinglutils
KF6::GlobalAccel KF6::GlobalAccel
KF6::I18n KF6::I18n

@ -13,7 +13,7 @@ kconfig_add_kcfg_files(slide_SOURCES
kwin_add_builtin_effect(slide ${slide_SOURCES}) kwin_add_builtin_effect(slide ${slide_SOURCES})
target_link_libraries(slide PRIVATE target_link_libraries(slide PRIVATE
kwineffects kwin
KF6::ConfigGui KF6::ConfigGui
) )

@ -9,5 +9,5 @@ set(slideback_SOURCES
kwin_add_builtin_effect(slideback ${slideback_SOURCES}) kwin_add_builtin_effect(slideback ${slideback_SOURCES})
target_link_libraries(slideback PRIVATE target_link_libraries(slideback PRIVATE
kwineffects kwin
) )

@ -14,7 +14,6 @@ kconfig_add_kcfg_files(slidingpopups_SOURCES
kwin_add_builtin_effect(slidingpopups ${slidingpopups_SOURCES}) kwin_add_builtin_effect(slidingpopups ${slidingpopups_SOURCES})
target_link_libraries(slidingpopups PRIVATE target_link_libraries(slidingpopups PRIVATE
kwin kwin
kwineffects
KF6::ConfigGui KF6::ConfigGui
) )

@ -9,6 +9,5 @@ set(snaphelper_SOURCES
kwin_add_builtin_effect(snaphelper ${snaphelper_SOURCES}) kwin_add_builtin_effect(snaphelper ${snaphelper_SOURCES})
target_link_libraries(snaphelper PRIVATE target_link_libraries(snaphelper PRIVATE
kwineffects kwin
kwinglutils
) )

@ -10,8 +10,7 @@ set(startupfeedback_SOURCES
kwin_add_builtin_effect(startupfeedback ${startupfeedback_SOURCES}) kwin_add_builtin_effect(startupfeedback ${startupfeedback_SOURCES})
target_link_libraries(startupfeedback PRIVATE target_link_libraries(startupfeedback PRIVATE
kwineffects kwin
kwinglutils
Qt::DBus Qt::DBus
Qt::Widgets Qt::Widgets

@ -12,8 +12,7 @@ kconfig_add_kcfg_files(thumbnailaside_SOURCES
kwin_add_builtin_effect(thumbnailaside ${thumbnailaside_SOURCES}) kwin_add_builtin_effect(thumbnailaside ${thumbnailaside_SOURCES})
target_link_libraries(thumbnailaside PRIVATE target_link_libraries(thumbnailaside PRIVATE
kwineffects kwin
kwinglutils
KF6::ConfigGui KF6::ConfigGui
KF6::GlobalAccel KF6::GlobalAccel

@ -14,7 +14,7 @@ set(tileseditor_SOURCES
kwin_add_builtin_effect(tileseditor ${tileseditor_SOURCES}) kwin_add_builtin_effect(tileseditor ${tileseditor_SOURCES})
target_link_libraries(tileseditor PRIVATE target_link_libraries(tileseditor PRIVATE
kwineffects kwin
KF6::ConfigGui KF6::ConfigGui
KF6::GlobalAccel KF6::GlobalAccel

@ -8,8 +8,7 @@ set(touchpoints_SOURCES
kwin_add_builtin_effect(touchpoints ${touchpoints_SOURCES}) kwin_add_builtin_effect(touchpoints ${touchpoints_SOURCES})
target_link_libraries(touchpoints PRIVATE target_link_libraries(touchpoints PRIVATE
kwineffects kwin
kwinglutils
KF6::GlobalAccel KF6::GlobalAccel
) )

@ -14,8 +14,7 @@ kconfig_add_kcfg_files(trackmouse_SOURCES
kwin_add_builtin_effect(trackmouse ${trackmouse_SOURCES}) kwin_add_builtin_effect(trackmouse ${trackmouse_SOURCES})
target_link_libraries(trackmouse PRIVATE target_link_libraries(trackmouse PRIVATE
kwineffects kwin
kwinglutils
KF6::ConfigGui KF6::ConfigGui
KF6::GlobalAccel KF6::GlobalAccel

@ -20,7 +20,6 @@
#include <QTime> #include <QTime>
#include "libkwineffects/glutils.h" #include "libkwineffects/glutils.h"
#include "libkwineffects/kwinconfig.h"
#include "libkwineffects/rendertarget.h" #include "libkwineffects/rendertarget.h"
#include "libkwineffects/renderviewport.h" #include "libkwineffects/renderviewport.h"

@ -20,7 +20,7 @@ qt_add_dbus_adaptor(windowview_SOURCES org.kde.KWin.Effect.WindowView1.xml windo
kwin_add_builtin_effect(windowview ${windowview_SOURCES}) kwin_add_builtin_effect(windowview ${windowview_SOURCES})
target_link_libraries(windowview PRIVATE target_link_libraries(windowview PRIVATE
kwineffects kwin
KF6::ConfigGui KF6::ConfigGui
KF6::GlobalAccel KF6::GlobalAccel

@ -12,7 +12,7 @@ kconfig_add_kcfg_files(wobblywindows_SOURCES
kwin_add_builtin_effect(wobblywindows ${wobblywindows_SOURCES}) kwin_add_builtin_effect(wobblywindows ${wobblywindows_SOURCES})
target_link_libraries(wobblywindows PRIVATE target_link_libraries(wobblywindows PRIVATE
kwineffects kwin
KF6::ConfigGui KF6::ConfigGui
) )

@ -18,8 +18,7 @@ kconfig_add_kcfg_files(zoom_SOURCES
kwin_add_builtin_effect(zoom ${zoom_SOURCES}) kwin_add_builtin_effect(zoom ${zoom_SOURCES})
target_link_libraries(zoom PRIVATE target_link_libraries(zoom PRIVATE
kwineffects kwin
kwinglutils
KF6::ConfigGui KF6::ConfigGui
KF6::ConfigWidgets KF6::ConfigWidgets

@ -6,7 +6,7 @@
#pragma once #pragma once
#include <kwinglobals.h> #include "libkwineffects/kwinglobals.h"
#include <QQmlParserStatus> #include <QQmlParserStatus>

@ -11,8 +11,7 @@
#pragma once #pragma once
// cmake stuff // cmake stuff
#include "libkwineffects/kwinconfig.h" #include "config-kwin.h"
#include <config-kwin.h>
// kwin // kwin
#include "libkwineffects/kwinglobals.h" #include "libkwineffects/kwinglobals.h"
#include "libkwineffects/version.h" #include "libkwineffects/version.h"

@ -6,7 +6,7 @@
#pragma once #pragma once
#include "kwinglobals.h" #include "libkwineffects/kwinglobals.h"
#include <QObject> #include <QObject>
#include <memory> #include <memory>

@ -5,17 +5,12 @@
*/ */
#pragma once #pragma once
#include "kwin_export.h" #include <QMetaType>
#include <QVariant>
#include <QtGlobal> #include <QtGlobal>
#include <qobjectdefs.h>
#include <inttypes.h>
namespace KWin namespace KWin
{ {
Q_NAMESPACE_EXPORT(KWIN_EXPORT)
/** /**
* ContentHint allows to modify the behavior of the text input. * ContentHint allows to modify the behavior of the text input.
*/ */
@ -67,7 +62,6 @@ enum class TextInputContentHint {
}; };
Q_DECLARE_FLAGS(TextInputContentHints, TextInputContentHint) Q_DECLARE_FLAGS(TextInputContentHints, TextInputContentHint)
Q_ENUM_NS(TextInputContentHint)
/** /**
* The ContentPurpose allows to specify the primary purpose of a text input. * The ContentPurpose allows to specify the primary purpose of a text input.
@ -133,7 +127,6 @@ enum class TextInputContentPurpose {
*/ */
Pin, Pin,
}; };
Q_ENUM_NS(TextInputContentPurpose)
enum class TextInputChangeCause { enum class TextInputChangeCause {
/** /**
@ -146,8 +139,6 @@ enum class TextInputChangeCause {
*/ */
Other, Other,
}; };
Q_ENUM_NS(TextInputChangeCause)
} }
Q_DECLARE_METATYPE(KWin::TextInputContentHint) Q_DECLARE_METATYPE(KWin::TextInputContentHint)

@ -5,6 +5,8 @@
*/ */
#pragma once #pragma once
#include "kwin_export.h"
#include <QObject> #include <QObject>
#include <memory> #include <memory>

@ -5,6 +5,8 @@
*/ */
#pragma once #pragma once
#include "kwin_export.h"
#include <QObject> #include <QObject>
#include <memory> #include <memory>

Loading…
Cancel
Save