tearing-control: hyprland impl (#5655)

* tearing: hl impl

* format
This commit is contained in:
Vaxry
2024-04-19 22:16:35 +01:00
committed by GitHub
parent 1016faea53
commit b52a49b4c4
14 changed files with 207 additions and 74 deletions

View File

@@ -2,11 +2,18 @@
#include "../defines.hpp"
#include <functional>
#define RESOURCE_OR_BAIL(resname) \
const auto resname = (CWaylandResource*)wl_resource_get_user_data(resource); \
if (!resname) \
return;
#define SP std::shared_ptr
#define UP std::unique_ptr
#define PROTO NProtocols
class CWaylandResource {
public:
CWaylandResource(wl_client* client, const wl_interface* wlInterface, uint32_t version, uint32_t id);
@@ -24,12 +31,15 @@ class CWaylandResource {
void* data();
void setData(void* data);
void setOnDestroyHandler(std::function<void(CWaylandResource* res)> fn);
private:
bool m_bImplementationSet = false;
bool m_bDefunct = false; // m_liResourceDestroy fired
wl_client* m_pWLClient = nullptr;
wl_resource* m_pWLResource = nullptr;
void* m_pData = nullptr;
bool m_bImplementationSet = false;
bool m_bDefunct = false; // m_liResourceDestroy fired
wl_client* m_pWLClient = nullptr;
wl_resource* m_pWLResource = nullptr;
void* m_pData = nullptr;
std::function<void(CWaylandResource* res)> m_fOnDestroyHandler;
};
class IWaylandProtocol {