12#include <KConfigGroup> 
   73    d->scale.setX(
scale.x());
 
   74    d->scale.setY(
scale.y());
 
 
  128    return d->translation.x();
 
 
  133    return d->translation.y();
 
 
  138    return d->translation.z();
 
 
  143    return d->translation;
 
 
  148    return d->rotationAngle;
 
 
  153    return d->rotationAxis;
 
 
  158    return d->rotationOrigin;
 
 
  163    d->rotationAngle = angle;
 
 
  183    d->rotationAxis = axis;
 
 
  188    d->rotationOrigin = origin;
 
 
  194    if (d->translation != QVector3D(0, 0, 0)) {
 
  195        ret.translate(d->translation * deviceScale);
 
  197    if (d->scale != QVector3D(1, 1, 1)) {
 
  201    if (d->rotationAngle != 0) {
 
  202        ret.translate(d->rotationOrigin * deviceScale);
 
  203        ret.rotate(d->rotationAngle, d->rotationAxis);
 
  204        ret.translate(-d->rotationOrigin * deviceScale);
 
 
  266    return d->saturation;
 
 
  271    return d->brightness;
 
 
  301    return d->crossFadeProgress;
 
 
  306    d->crossFadeProgress = std::clamp(factor, 0.0, 1.0);
 
 
  311    d->opacity *= factor;
 
 
  317    d->saturation *= factor;
 
  318    return d->saturation;
 
 
  323    d->brightness *= factor;
 
  324    return d->brightness;
 
 
  329    d->projectionMatrix = matrix;
 
 
  334    return d->projectionMatrix;
 
 
  339    return d->projectionMatrix;
 
 
  463                                        const QRect &r, Qt::AspectRatioMode aspect)
 
  465    QSizeF size = w->
size();
 
  466    size.scale(r.size(), aspect);
 
  471    int x = r.x() + (r.width() - width) / 2;
 
  472    int y = r.y() + (r.height() - height) / 2;
 
  473    region = QRect(x, y, width, height);
 
 
  485    int time = cfg.readEntry(key, 0);
 
 
  570#include "moc_effect.cpp" 
Base class for all KWin effects.
Representation of a window used by/for Effect classes.
void drawWindow(const RenderTarget &renderTarget, const RenderViewport &viewport, EffectWindow *w, int mask, const QRegion ®ion, WindowPaintData &data)
void paintScreen(const RenderTarget &renderTarget, const RenderViewport &viewport, int mask, const QRegion ®ion, Output *screen)
void paintWindow(const RenderTarget &renderTarget, const RenderViewport &viewport, EffectWindow *w, int mask, const QRegion ®ion, WindowPaintData &data)
void prePaintScreen(ScreenPrePaintData &data, std::chrono::milliseconds presentTime)
void prePaintWindow(EffectWindow *w, WindowPrePaintData &data, std::chrono::milliseconds presentTime)
qreal animationTimeFactor
void postPaintWindow(EffectWindow *w)
QMatrix4x4 projectionMatrix
void setRotationAngle(qreal angle)
virtual QString debug(const QString ¶meter) const
virtual void paintWindow(const RenderTarget &renderTarget, const RenderViewport &viewport, EffectWindow *w, int mask, QRegion region, WindowPaintData &data)
void setYTranslation(qreal translate)
virtual void postPaintScreen()
virtual int requestedEffectChainPosition() const
virtual bool tabletPadStripEvent(int number, int position, bool isFinger, void *tabletPadId)
~EffectPluginFactory() override
void setProjectionMatrix(const QMatrix4x4 &matrix)
qreal crossFadeProgress() const
QVector3D rotationOrigin() const
static void setPositionTransformations(WindowPaintData &data, QRect ®ion, EffectWindow *w, const QRect &r, Qt::AspectRatioMode aspect)
virtual void drawWindow(const RenderTarget &renderTarget, const RenderViewport &viewport, EffectWindow *w, int mask, const QRegion ®ion, WindowPaintData &data)
virtual void prePaintWindow(EffectWindow *w, WindowPrePaintData &data, std::chrono::milliseconds presentTime)
const QVector3D & scale() const
virtual void prePaintScreen(ScreenPrePaintData &data, std::chrono::milliseconds presentTime)
virtual bool provides(Feature)
virtual bool touchDown(qint32 id, const QPointF &pos, std::chrono::microseconds time)
qreal multiplySaturation(qreal factor)
void setXTranslation(qreal translate)
WindowPaintData & operator+=(const QPointF &translation)
virtual void paintScreen(const RenderTarget &renderTarget, const RenderViewport &viewport, int mask, const QRegion ®ion, Output *screen)
virtual bool tabletPadRingEvent(int number, int position, bool isFinger, void *tabletPadId)
virtual bool isSupported() const
static QPointF cursorPos()
virtual bool touchMotion(qint32 id, const QPointF &pos, std::chrono::microseconds time)
virtual bool tabletToolButtonEvent(uint button, bool pressed, quint64 tabletToolId)
virtual bool isActive() const
void setScreen(int screen) const
qreal multiplyOpacity(qreal factor)
void setXScale(qreal scale)
virtual bool perform(Feature feature, const QVariantList &arguments)
QMatrix4x4 toMatrix(qreal deviceScale) const
void setOpacity(qreal opacity)
void setSaturation(qreal saturation) const
const QVector3D & translation() const
qreal yTranslation() const
virtual void reconfigure(ReconfigureFlags flags)
void setRotationAxis(const QVector3D &axis)
virtual void windowInputMouseEvent(QEvent *e)
Effect(QObject *parent=nullptr)
virtual bool blocksDirectScanout() const
void setBrightness(qreal brightness)
QMatrix4x4 projectionMatrix() const
void setScale(const QVector2D &scale)
qreal multiplyBrightness(qreal factor)
virtual void postPaintWindow(EffectWindow *w)
virtual bool tabletPadButtonEvent(uint button, bool pressed, void *tabletPadId)
qreal zTranslation() const
static double animationTime(const KConfigGroup &cfg, const QString &key, int defaultTime)
void setRotationOrigin(const QVector3D &origin)
void setYScale(qreal scale)
virtual void grabbedKeyboardEvent(QKeyEvent *e)
virtual bool borderActivated(ElectricBorder border)
QVector3D rotationAxis() const
qreal xTranslation() const
~WindowPaintData() override
WindowPaintData & operator*=(qreal scale)
virtual bool enabledByDefault() const
virtual bool tabletToolEvent(QTabletEvent *event)
virtual bool touchUp(qint32 id, std::chrono::microseconds time)
void translate(qreal x, qreal y=0.0, qreal z=0.0)
void setZTranslation(qreal translate)
qreal rotationAngle() const
void setZScale(qreal scale)
void setCrossFadeProgress(qreal factor)
Sets the cross fading factor to fade over with previously sized window. If 1.0 only the current windo...
QMatrix4x4 & rprojectionMatrix()
@ PAINT_WINDOW_TRANSFORMED
@ PAINT_WINDOW_TRANSLUCENT