diff options
| author | Vaxry <vaxry@vaxry.net> | 2024-10-26 02:06:13 +0100 |
|---|---|---|
| committer | Vaxry <vaxry@vaxry.net> | 2024-10-26 02:06:13 +0100 |
| commit | d5689bb53935ff1adbbfc9fdf5b1f542ce39efb2 (patch) | |
| tree | 9df10d93160b5f6dc8c087d56b6face18809b56a /src/protocols/core | |
| parent | e5384774a8258e44cc7f7b690ce4f6ad1f92b562 (diff) | |
internal: cleanup CMonitor usage and fix a few ref hogs
ref #8221
Diffstat (limited to 'src/protocols/core')
| -rw-r--r-- | src/protocols/core/Compositor.cpp | 6 | ||||
| -rw-r--r-- | src/protocols/core/Compositor.hpp | 8 | ||||
| -rw-r--r-- | src/protocols/core/Output.cpp | 4 | ||||
| -rw-r--r-- | src/protocols/core/Output.hpp | 8 |
4 files changed, 13 insertions, 13 deletions
diff --git a/src/protocols/core/Compositor.cpp b/src/protocols/core/Compositor.cpp index 3d4b63c1..9a2e00a9 100644 --- a/src/protocols/core/Compositor.cpp +++ b/src/protocols/core/Compositor.cpp @@ -182,7 +182,7 @@ wl_client* CWLSurfaceResource::client() { return pClient; } -void CWLSurfaceResource::enter(SP<CMonitor> monitor) { +void CWLSurfaceResource::enter(PHLMONITOR monitor) { if (std::find(enteredOutputs.begin(), enteredOutputs.end(), monitor) != enteredOutputs.end()) return; @@ -209,7 +209,7 @@ void CWLSurfaceResource::enter(SP<CMonitor> monitor) { resource->sendEnter(output->getResource().get()); } -void CWLSurfaceResource::leave(SP<CMonitor> monitor) { +void CWLSurfaceResource::leave(PHLMONITOR monitor) { if (std::find(enteredOutputs.begin(), enteredOutputs.end(), monitor) == enteredOutputs.end()) return; @@ -509,7 +509,7 @@ void CWLSurfaceResource::updateCursorShm() { memcpy(shmData.data(), pixelData, bufLen); } -void CWLSurfaceResource::presentFeedback(timespec* when, SP<CMonitor> pMonitor) { +void CWLSurfaceResource::presentFeedback(timespec* when, PHLMONITOR pMonitor) { frame(when); auto FEEDBACK = makeShared<CQueuedPresentationData>(self.lock()); FEEDBACK->attachMonitor(pMonitor); diff --git a/src/protocols/core/Compositor.hpp b/src/protocols/core/Compositor.hpp index b3c067c9..fbffd966 100644 --- a/src/protocols/core/Compositor.hpp +++ b/src/protocols/core/Compositor.hpp @@ -60,8 +60,8 @@ class CWLSurfaceResource { bool good(); wl_client* client(); - void enter(SP<CMonitor> monitor); - void leave(SP<CMonitor> monitor); + void enter(PHLMONITOR monitor); + void leave(PHLMONITOR monitor); void sendPreferredTransform(wl_output_transform t); void sendPreferredScale(int32_t scale); void frame(timespec* now); @@ -115,7 +115,7 @@ class CWLSurfaceResource { std::vector<SP<CWLCallbackResource>> callbacks; WP<CWLSurfaceResource> self; WP<CWLSurface> hlSurface; - std::vector<WP<CMonitor>> enteredOutputs; + std::vector<PHLMONITORREF> enteredOutputs; bool mapped = false; std::vector<WP<CWLSubsurfaceResource>> subsurfaces; SP<ISurfaceRole> role; @@ -124,7 +124,7 @@ class CWLSurfaceResource { void breadthfirst(std::function<void(SP<CWLSurfaceResource>, const Vector2D&, void*)> fn, void* data); CRegion accumulateCurrentBufferDamage(); - void presentFeedback(timespec* when, SP<CMonitor> pMonitor); + void presentFeedback(timespec* when, PHLMONITOR pMonitor); void lockPendingState(); void unlockPendingState(); diff --git a/src/protocols/core/Output.cpp b/src/protocols/core/Output.cpp index e9f35abc..edeeb584 100644 --- a/src/protocols/core/Output.cpp +++ b/src/protocols/core/Output.cpp @@ -3,7 +3,7 @@ #include "../../Compositor.hpp" #include "../../helpers/Monitor.hpp" -CWLOutputResource::CWLOutputResource(SP<CWlOutput> resource_, SP<CMonitor> pMonitor) : monitor(pMonitor), resource(resource_) { +CWLOutputResource::CWLOutputResource(SP<CWlOutput> resource_, PHLMONITOR pMonitor) : monitor(pMonitor), resource(resource_) { if (!good()) return; @@ -83,7 +83,7 @@ void CWLOutputResource::updateState() { resource->sendDone(); } -CWLOutputProtocol::CWLOutputProtocol(const wl_interface* iface, const int& ver, const std::string& name, SP<CMonitor> pMonitor) : +CWLOutputProtocol::CWLOutputProtocol(const wl_interface* iface, const int& ver, const std::string& name, PHLMONITOR pMonitor) : IWaylandProtocol(iface, ver, name), monitor(pMonitor), szName(pMonitor->szName) { listeners.modeChanged = monitor->events.modeChanged.registerListener([this](std::any d) { diff --git a/src/protocols/core/Output.hpp b/src/protocols/core/Output.hpp index 49c32ec1..a4c81d72 100644 --- a/src/protocols/core/Output.hpp +++ b/src/protocols/core/Output.hpp @@ -12,7 +12,7 @@ class CWLOutputProtocol; class CWLOutputResource { public: - CWLOutputResource(SP<CWlOutput> resource_, SP<CMonitor> pMonitor); + CWLOutputResource(SP<CWlOutput> resource_, PHLMONITOR pMonitor); static SP<CWLOutputResource> fromResource(wl_resource*); bool good(); @@ -20,7 +20,7 @@ class CWLOutputResource { SP<CWlOutput> getResource(); void updateState(); - WP<CMonitor> monitor; + PHLMONITORREF monitor; WP<CWLOutputProtocol> owner; WP<CWLOutputResource> self; @@ -33,14 +33,14 @@ class CWLOutputResource { class CWLOutputProtocol : public IWaylandProtocol { public: - CWLOutputProtocol(const wl_interface* iface, const int& ver, const std::string& name, SP<CMonitor> pMonitor); + CWLOutputProtocol(const wl_interface* iface, const int& ver, const std::string& name, PHLMONITOR pMonitor); virtual void bindManager(wl_client* client, void* data, uint32_t ver, uint32_t id); SP<CWLOutputResource> outputResourceFrom(wl_client* client); void sendDone(); - WP<CMonitor> monitor; + PHLMONITORREF monitor; WP<CWLOutputProtocol> self; // will mark the protocol for removal, will be removed when no. of bound outputs is 0 (or when overwritten by a new global) |
