summaryrefslogtreecommitdiff
path: root/src/managers/PointerManager.cpp
Commit message (Collapse)AuthorAgeFilesLines
* pointermgr: damage only the surface size (#13284)Tom Englund2026-02-211-13/+16
| | | | | | | | | | | | | | | | | * pointermgr: damage only the surface size CWaylandOutput returns a vector2d with -1, -1 set as a "no limit", passing that down into beginSimple and the renderer it hits pixman bug of invalid sizes and wrong rectangles gets created. causing bunch of *** BUG *** In pixman_region32_init_rect: Invalid rectangle passed set the damage either to cursor plane size or fallback to 256x256. * pointermgr: dedup if hw cursorsize checks dedup a bit if else casing
* multigpu: fix multi gpu checking (#13277)Tom Englund2026-02-211-1/+2
| | | | | | | | | | | | | | | * multigpu: fix multi gpu checking drmFD() from allocators is not always equal, because we reopen them inside AQ for refcounting, meaning they get duplicated and become their own fds, so checking if fd1 == fd2 ends up wrong. introduce sameGpu in MiscFunctions that checks the actual drmDevice meaning we can now even check if a rendernode is the same gpu as a display node if we want. * multigpu: move sameGpu to DRM namespace move sameGpu out of MiscFunctions to DRM namespace.
* input: fix kinetic scroll (#13233)bea4dev2026-02-101-1/+2
|
* renderer: allow tearing with DS with invisible cursors (#13155)UjinT342026-02-071-2/+9
|
* renderer: fix mouse motion in VRR (#12665)Szwagi2026-01-311-41/+17
|
* pointermgr: remove onRenderBufferDestroy (#13008)Tom Englund2026-01-181-4/+3
| | | | | set the damage to cursor plane size instead of INT16_MAX and remove onRenderbufferDestroy, renderbuffer already have a listener that destroys when buffer is destroyed.
* rules/windowRuleApplicator: fix min/max size effects (#12491)Vaxry2025-12-271-2/+2
| | | fixes #12412
* debug: move to hyprutils' logger (#12673)Vaxry2025-12-181-22/+22
|
* desktop: cleanup, unify desktop elements as views (#12563)Vaxry2025-12-081-1/+1
|
* pointer: apply locked pointer workaround only on xwayland (#12402)Hleb Shauchenka2025-12-041-1/+4
|
* compositor: Configurable behavior when window to be focused conflicts with ↵Nikolai Nechaev2025-11-251-2/+3
| | | | | | | | | | fullscreen (#12033) Renames `misc:new_window_takes_over_fullscreen` into `misc:on_focus_under_fullscreen` and implements the following behavior: - By default, when a tiling window is being focused on a workspace where a fullscreen/maximized window exists, respect the `misc:on_focus_under_fullscreen` config variable.
* input: add per-device scroll-factor (#11241)Vaxry2025-09-021-2/+2
|
* input: Add fully configurable trackpad gestures (#11490)Vaxry2025-08-281-10/+12
| | | Adds configurable trackpad gestures
* syncobj: use rendernode for timelines (#11087)Tom Englund2025-08-241-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * syncobj: use rendernode for timelines use rendernode for timelines instead of the drmfd, some devices dont support to use the drmfd for this. * opengl: use rendernode if available use rendernode if available for CHyprOpenglImpl * MesaDRM: use the m_drmRenderNodeFD if it exist try use the rendernode we got from AQ if it exist. * linuxdmabuf: use rendernode if available use the rendernode if available already from AQ * syncobj: prefer rendernode over displaynode prefer the rendernode over the displaynode, and log a error if attempting to use the protocol without explicit sync support on any of the nodes. * syncobj: check support on both nodes always check support on both nodes always so it can be used later for preferring rendernode if possible in syncobj protocol. * syncobj: remove old var in non linux if else case remove old m_bDrmSyncobjTimelineSupported from non linux if else case that will fail to compile on non linux. the nodes sets support by default to false, and if non linux it wont check for support and set it to true. * build: bump aq requirement bump to 0.9.3 where rendernode support got added. * flake.lock: update * renderer: glfinish on software renderer software renderers apparently bug out on implicit sync, use glfinish as with nvidia case on implicit paths. * flake.lock: update --------- Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
* refactor: Use new hyprutils casts (#11377)Kamikadze2025-08-141-10/+9
|
* opengl: improve render fn arg clarity (#11286)Vaxry2025-07-311-1/+1
|
* ci: correct tar command for xz compression & fix typos (#11213)xqso2025-07-251-1/+1
|
* renderpass: use unique ptr instead of shared ptrTom Englund2025-07-101-1/+1
| | | | | lets use unique ptrs instead of refcounting shared ptr when its not needed, use rvalue reference to construct in vector directly.
* core: use new typed signals from hu (#10853)outfoxxed2025-07-081-119/+53
|
* pass: overload TexPass constructorTom Englund2025-07-071-1/+1
| | | | | overload it with a rvalue to allow us to move the data directly avoiding an extra copy. because SRenderData is not trivially copyable.
* refactor: use std::ranges whenever possible (#10584)Kamikadze2025-05-301-1/+1
|
* cursor: fix screencopy cursor pos and duplicate shape with sw cursors (#10519)Virt2025-05-231-0/+7
| | | | | * cursor: account for hotspot with overridePos * cursor: don't draw cursor on screencopy if using sw anyways
* opengl: optimize shaders and reduce unneeded drawcalls (#10364)Tom Englund2025-05-111-1/+0
| | | | | | | | | | | | | | | | | | | | | | | * opengl: remove unnecessery glflush calls glflushing forces the driver to break batching and issue commands prematurely and prevents optimisations like command reordering and merging. many glFunctions already internally glflushes and eglsync creation still has a glflush at end render. so lets reduce the overhead of these calls. * opengl: reduce glUseProgram calls apitrace shows cases where the same program gets called multiple times, add a helper function that keeps track of current program and only call it once on same program. reduces slight overhead. * opengl: use more efficient vertex array object use a more modern vertex array object approach with the shaders, makes it a onetime setup on shader creation instead of once per drawcall, also should make the driver not have to revalidate the vertex format on each call.
* render: refactor class member vars (#10292)davc0n2025-05-051-10/+10
| | | | | * render: refactor class member vars * render: fix clang format
* protocols: refactor class member vars (core) (#10259)davc0n2025-05-031-15/+15
|
* managers: refactor class member vars (#10242)davc0n2025-05-021-105/+105
|
* helpers: refactor class member vars (#10218)davc0n2025-04-301-59/+60
|
* devices: refactor class member vars (#10206)davc0n2025-04-291-42/+42
|
* screencopy: support hw cursors while sharing with cursorVaxry2025-04-281-2/+2
|
* workspaces: refactor class member vars (#10167)davc0n2025-04-251-1/+1
|
* compositor: refactor class member vars (#10141)davc0n2025-04-221-16/+16
|
* time: move to stl's clocks and move timerVaxry2025-04-161-4/+3
|
* windowrules: allow incrementing window props (#9566)MightyPlaza2025-04-161-0/+1
|
* pass: remove unusued timeline in texpass (#9734)Tom Englund2025-03-261-7/+3
| | | | | remove unused timeline and waitpoint in texpass and especially remove the passing it to renderTextureInternalWithDamage that implicitly converted it to bool. setting discardActive and allowCustomUV
* renderer: only commit hw cursor stuff if needed (#9654)Ikalco2025-03-171-0/+4
|
* managers: Use primary backend for cursor swapchain (#9645)Lee Bousfield2025-03-171-1/+3
|
* config: set no_hw_cursors to auto by default and disable on tearingVaxry2025-02-151-2/+3
| | | | when tearing, updates to the overlay plane may be ignored by the kernel. To avoid the cursor being a slideshow, disable hw cursors
* monitor: report a scheduled frame when tearing on cursor moveVaxry2025-02-151-1/+9
|
* core: avoid .at() and use [] operator (#9347)Tom Englund2025-02-061-1/+1
| | | avoid .at() where it makes sense and use [] operator in loops.
* renderer/internal: stop using box pointersVaxry2025-01-261-3/+3
| | | | in favor of const refs
* pointer: always scale the cpu cursor to the right sizeVaxry2025-01-261-0/+4
| | | | fixes #9003
* core: cleanup header includes (#9088)user1111111111111111111111111111111112025-01-171-0/+4
| | | Cleanup some unneeded includes to speed up compilation
* renderer: use cairo for cpu buffer rendering (#9071)Vaxry2025-01-161-7/+51
| | | Instead of a wonky memcpy which doesn't work when anything non-standard is used (size, pos, transform), just use cairo
* core: use cpu-buffer hw cursors on nvidia by defaultvaxerski2025-01-081-6/+8
|
* Renderer: rewrite render scheduling (#8683)Vaxry2024-12-221-1/+10
| | | This rewrites renderer scheduling. Occlusion is now unified in a new Pass type.
* core: Add clang-tidy (#8664)Vaxry2024-12-071-24/+24
| | | | | This adds a .clang-tidy file for us. It's not a strict requirement to be compliant, but I tuned it to be alright.
* core: move colorspace handling to oklab (#8635)Vaxry2024-12-031-1/+1
| | | | | | | | | | | * Meson: add hyprgraphics * Nix: add hyprgraphics * CI/setup_base: get hyprgraphics-git --------- Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
* pointer: add drm dumb buffers for cursors (#8399)Vaxry2024-11-141-50/+76
| | | | | --------- Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
* pointer: map devices across all outputs by default (#8352)JManch2024-11-111-39/+37
|
* internal: more profiling less calls and local copies (#8300)Tom Englund2024-10-301-12/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * compositor: reduce amount of window box copies mousemoveunified can call this very frequently, the cbox copying actually shows up as an impact in such cases, move it down in the scope and only do it when necessery. * core: constify and reference frequent calls profiling shows these as frequent called functions try to reduce the amount of copies with references and const the variables. * pointermgr: remove not used local copy, const ref remove unneded local copies and const ref cursorsize. * inputmgr: reduce amount of calls to vectortowindow the amount of calls to g_pCompositor->vectorToWindowUnified fast ramps up in cpu usage with enough windows existing and moving the mouse, move the PWINDOWIDEAL up and reuse it if its already the same. * protocol: compositor remove unused local copy remove unused local copy of accumulateCurrentBufferDamage and const previousBuffer. * renderer: reduce scope of variables and refactor move a few variables down in their scopes to reduce the amount of calls and copies when not needed, also add one more for loop in renderWorkspaceWindows and store the windows in a vector with weakpointers that should be rendered, this adds a loop but reduces the amount of repeated calls to shouldRenderWindow and also makes the rest of the loops go over way smaller vector when many windows exist.