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