1
0
Fork 0
mirror of https://github.com/hyprwm/Hyprland synced 2025-04-12 23:58:11 +02:00
Hyprland/src/helpers/WLClasses.hpp
Vaxry f044e4c951
internal: Move CMonitor to SP ()
* move monitors to sp

* XD
2024-10-19 23:03:29 +01:00

85 lines
1.8 KiB
C++

#pragma once
#include "../events/Events.hpp"
#include "../defines.hpp"
#include "../desktop/Window.hpp"
#include "../desktop/Subsurface.hpp"
#include "../desktop/Popup.hpp"
#include "AnimatedVariable.hpp"
#include "../desktop/WLSurface.hpp"
#include "signal/Signal.hpp"
#include "math/Math.hpp"
class CMonitor;
class IPointer;
class IKeyboard;
class CWLSurfaceResource;
AQUAMARINE_FORWARD(ISwitch);
struct SRenderData {
PHLMONITORREF pMonitor;
timespec* when;
double x, y;
// for iters
void* data = nullptr;
SP<CWLSurfaceResource> surface = nullptr;
double w, h;
// for rounding
bool dontRound = true;
// for fade
float fadeAlpha = 1.f;
// for alpha settings
float alpha = 1.f;
// for decorations (border)
bool decorate = false;
// for custom round values
int rounding = -1; // -1 means not set
// for blurring
bool blur = false;
bool blockBlurOptimization = false;
// only for windows, not popups
bool squishOversized = true;
// for calculating UV
PHLWINDOW pWindow;
bool popup = false;
// counts how many surfaces this pass has rendered
int surfaceCounter = 0;
};
struct SSwipeGesture {
PHLWORKSPACE pWorkspaceBegin = nullptr;
double delta = 0;
int initialDirection = 0;
float avgSpeed = 0;
int speedPoints = 0;
int touch_id = 0;
PHLMONITORREF pMonitor;
};
struct SSwitchDevice {
WP<Aquamarine::ISwitch> pDevice;
struct {
CHyprSignalListener destroy;
CHyprSignalListener fire;
} listeners;
bool operator==(const SSwitchDevice& other) const {
return pDevice == other.pDevice;
}
};