summaryrefslogtreecommitdiff
path: root/src/render/Renderer.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* renderer: minor fixup to window rendering logic (#8359)dawsers2024-11-061-1/+1
| | | Don't render animating windows out of their monitor when they are not moving workspaces
* renderer: add expand_undersized_texturesVaxry2024-11-041-12/+16
| | | | adds an option to disable the texture expansion for textures that are smaller while resizing up
* renderer: Add a missing texture asset and a user checkVaxry2024-11-011-13/+7
| | | | | | | | When an asset is missing, instead of a black screen, render an obnoxious, yet standard, missing texture. Additionally, warn the user assets failed to load. Shoutout to Arch for having their assets broken for months. Fix your shit. I am tired of it, and it's negatively impacting users.
* internal: more profiling less calls and local copies (#8300)Tom Englund2024-10-301-26/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* core: move internal structures to monitor pointers (#8266)Vaxry2024-10-271-16/+16
|
* internal: cleanup CMonitor usage and fix a few ref hogsVaxry2024-10-261-2/+2
| | | | ref #8221
* layersurface: fixup brace styleVaxry2024-10-191-22/+22
|
* layersurface: round geom in arrangeLayerArrayVaxry2024-10-191-1/+3
| | | | fixes #8171
* internal: Move CMonitor to SP (#8178)Vaxry2024-10-191-31/+31
| | | | | * move monitors to sp * XD
* renderer: reserve space for error at the bottom if that's setVaxry2024-10-081-5/+12
| | | | ref #8040
* hyprerror: make hyprerror reserve space (#8040)Vaxry2024-10-081-0/+17
|
* protocols: Add support for hyprland-ctm-control-v1 (#8023)Vaxry2024-10-081-0/+5
| | | | | | | | | | | * initial ctm support * flake.lock: update * Meson: bump required versions and add ctm proto --------- Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
* renderer: Fix resize artifacts (stretching, bumps) (#7499)Vaxry2024-10-051-17/+25
|
* renderer: fix uvBR calculation (#7975)Maximilian Seidler2024-10-031-1/+1
|
* internal: move to hyprutils' scopeguardVaxry2024-09-211-1/+3
| | | | bumps hyprutils dep to 0.2.2
* config: add order rule for layers (#7697)darkwater2024-09-091-0/+4
|
* renderer: minor direct scanout fixes (#7594)Ikalco2024-08-311-3/+6
|
* config: Add a window rule to render while unfocused (#7582)Vaxry2024-08-301-0/+50
|
* presentation-feedback: minor fixupsVaxry2024-08-301-2/+2
|
* renderer: better lockscreen dead behavior (#7574)Vaxry2024-08-291-16/+37
| | | | | --------- Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
* renderer: fade out windows on silent movesVaxry2024-08-281-6/+15
|
* renderer: ensure buffer format on commit (#7556)Ikalco2024-08-281-0/+1
|
* misc: constify the remaining for loops (#7534)Tom Englund2024-08-261-44/+44
| | | now we roll loops at blazing constified speed.
* core: make most for loops use const references (#7527)Tom Englund2024-08-261-12/+12
| | | | why not let the compiler optimise things for us at hyprspeeds when we can.
* renderer: pass custom modelines to aqvaxerski2024-08-181-11/+3
| | | | ref #7390
* render: fixup format mismatch after leaving DSvaxerski2024-08-171-0/+4
| | | | fixes #7373
* core: fix data race and a unsigned int rollover (#7278)Tom Englund2024-08-121-5/+5
| | | | | | | | | | | | | | | | | | * keybindmgr: avoid uint rollover on mouse keycode mouse keycode is 0, and the switch case checks for 0 - 8 and rolls over, just return early if keycode is 0. * watchdog: avoid data races in watchdog asan thread sanitizer reported data races in the watchdog from reading and setting the bool variables make them std::atomic bools. also add a atomic bool for the main thread to wait for to avoid data race when reading the config values. * hyprdebug: change non unicode character to name asan created false positives and didnt like this bit, so for the sake of easier debugging rename it to something unicode.
* cursor: make inactive_timeout setting a float (#7268)Walt Bringenberg2024-08-101-1/+1
|
* internal: introduce new types to avoid unsigned int rollover and signed int ↵Tom Englund2024-08-081-1/+1
| | | | | | | | | | | | | | | | | | | | overflow (#7216) * framebuffer: avoid gluint overflow GLuint was being initialized to -1 and rolling over to unsigned int max, its defined behaviour but very unnecessery. add a bool and use it for checking if allocated or not. * opengl: avoid gluint rollover -1 rolls over to unsigned int max, use 0xFF instead. * core: big uint64_t to int type conversion there were a few uint64_t to int implicit conversions overflowing int and causing UB, make all monitor/workspaces/windows use the new typedefs. also fix the various related 64 to 32 implicit conversions going around found with -Wshorten-64-to-32
* renderer: fixup nvidia driver version checksVaxry2024-08-071-1/+1
|
* renderer: guard layer in renderLayerVaxry2024-08-071-0/+3
| | | | ref #7181
* renderer: Explicit sync fixes (#7151)Vaxry2024-08-061-66/+121
| | | | | Enables explicit sync by default for most platforms `misc:no_direct_scanout` -> `render:direct_scanout`
* core/surface/buffer: Buffer lock/release fixes (#7110)Vaxry2024-07-311-7/+7
|
* internal: refactor fullscreen states (#7104)MightyPlaza2024-07-311-12/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * refactor fullscreen modified: src/Compositor.cpp modified: src/Compositor.hpp modified: src/config/ConfigManager.cpp modified: src/config/ConfigManager.hpp modified: src/debug/HyprCtl.cpp modified: src/desktop/LayerSurface.cpp modified: src/desktop/Window.cpp modified: src/desktop/Window.hpp modified: src/desktop/Workspace.cpp modified: src/desktop/Workspace.hpp modified: src/events/Windows.cpp modified: src/helpers/Monitor.cpp modified: src/layout/DwindleLayout.cpp modified: src/layout/DwindleLayout.hpp modified: src/layout/IHyprLayout.cpp modified: src/layout/IHyprLayout.hpp modified: src/layout/MasterLayout.cpp modified: src/layout/MasterLayout.hpp modified: src/managers/KeybindManager.cpp modified: src/managers/KeybindManager.hpp modified: src/managers/input/IdleInhibitor.cpp modified: src/managers/input/InputManager.cpp modified: src/managers/input/Swipe.cpp modified: src/protocols/ForeignToplevelWlr.cpp modified: src/render/Renderer.cpp modified: src/render/decorations/CHyprGroupBarDecoration.cpp * clean up modified: src/config/ConfigManager.cpp modified: src/debug/HyprCtl.cpp modified: src/desktop/Window.hpp modified: src/desktop/Workspace.cpp modified: src/events/Windows.cpp modified: src/managers/KeybindManager.cpp modified: src/managers/input/Swipe.cpp * fix mapWindow fullscreen modified: src/events/Windows.cpp * fix typo modified: src/desktop/Workspace.cpp * add fullscreenstate modified: src/config/ConfigManager.cpp modified: src/events/Windows.cpp * change syncFullscreen to lower modified: src/config/ConfigManager.hpp * initialize fs state modified: src/desktop/Window.hpp
* output: minor tearing fixesVaxry2024-07-301-5/+2
|
* output: submit damage to kmsVaxry2024-07-301-0/+2
|
* renderer: use session lock alpha for rendering lacking locksvaxerski2024-07-271-2/+3
|
* renderer/layer-shell: use explicitly set exclusiveEdge (#6984)Sam Lakerveld2024-07-221-3/+4
|
* surface: fixup logical damage size calculationsVaxry2024-07-221-1/+1
| | | | fixes #6618
* compositor: ignore setting surface scanout if DS is disabledVaxry2024-07-211-1/+1
|
* renderer: drop redundant spammy trace logVaxry2024-07-211-3/+1
|
* Core: Move to aquamarine (#6608)Vaxry2024-07-211-292/+305
| | | | | | | | | | | | | | Moves Hyprland from wlroots to aquamarine for the backend. --------- Signed-off-by: Vaxry <vaxry@vaxry.net> Co-authored-by: Mihai Fufezan <mihai@fufexan.net> Co-authored-by: Jan Beich <jbeich@FreeBSD.org> Co-authored-by: vaxerski <vaxerski@users.noreply.github.com> Co-authored-by: UjinT34 <41110182+UjinT34@users.noreply.github.com> Co-authored-by: Tom Englund <tomenglund26@gmail.com> Co-authored-by: Ikalco <73481042+ikalco@users.noreply.github.com> Co-authored-by: diniamo <diniamo53@gmail.com>
* session-lock: send `locked` after the lock screen is properly rendered (#6850)Junxuan Liao2024-07-131-0/+3
| | | | | | | | | | The protocol says: > The locked event "must not be sent until a new "locked" frame (either from a > session lock surface or the compositor blanking the output) has been presented > on all outputs and no security sensitive normal/unlocked content is possibly > visible". This helps users ensure the screen is properly locked before suspending the machine. (e.g. with swaylock --ready-fd)
* core: Improve handling of window properties (#6776)MightyPlaza2024-07-111-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * add mWindowProperties modified: src/debug/HyprCtl.cpp modified: src/desktop/Window.cpp modified: src/desktop/Window.hpp modified: src/events/Windows.cpp * support int values modified: src/debug/HyprCtl.cpp modified: src/desktop/Window.cpp modified: src/desktop/Window.hpp * create m_sWindowData modified: src/Compositor.cpp modified: src/debug/HyprCtl.cpp modified: src/desktop/Window.cpp modified: src/desktop/Window.hpp modified: src/events/Windows.cpp modified: src/layout/DwindleLayout.cpp modified: src/layout/IHyprLayout.cpp modified: src/layout/MasterLayout.cpp modified: src/managers/AnimationManager.cpp modified: src/managers/KeybindManager.cpp modified: src/managers/XWaylandManager.cpp modified: src/render/OpenGL.cpp modified: src/render/Renderer.cpp modified: src/render/decorations/CHyprBorderDecoration.cpp modified: src/render/decorations/CHyprDropShadowDecoration.cpp modified: src/render/decorations/CHyprGroupBarDecoration.cpp * simplify some properties modified: src/Compositor.cpp modified: src/debug/HyprCtl.cpp modified: src/desktop/Window.cpp modified: src/desktop/Window.hpp modified: src/managers/KeybindManager.cpp * store multiple values in CWindowOverridableVar modified: src/Compositor.cpp modified: src/debug/HyprCtl.cpp modified: src/desktop/Window.cpp modified: src/desktop/Window.hpp modified: src/events/Windows.cpp modified: src/layout/IHyprLayout.cpp modified: src/managers/AnimationManager.cpp modified: src/managers/KeybindManager.cpp modified: src/managers/XWaylandManager.cpp modified: src/render/OpenGL.cpp modified: src/render/Renderer.cpp modified: src/render/decorations/CHyprBorderDecoration.cpp modified: src/render/decorations/CHyprDropShadowDecoration.cpp modified: src/render/decorations/CHyprGroupBarDecoration.cpp * clean up modified: src/Compositor.cpp modified: src/Compositor.hpp modified: src/config/ConfigManager.cpp modified: src/config/ConfigManager.hpp modified: src/debug/HyprCtl.cpp modified: src/desktop/Window.cpp modified: src/desktop/Window.hpp modified: src/events/Windows.cpp modified: src/layout/DwindleLayout.cpp modified: src/layout/IHyprLayout.cpp modified: src/layout/IHyprLayout.hpp modified: src/layout/MasterLayout.cpp modified: src/managers/KeybindManager.cpp * use SET_PROP priority for exec rules modified: src/config/ConfigManager.hpp modified: src/desktop/Window.cpp * add default value modified: src/Compositor.cpp modified: src/debug/HyprCtl.cpp modified: src/desktop/Window.cpp modified: src/desktop/Window.hpp modified: src/events/Windows.cpp modified: src/layout/IHyprLayout.cpp modified: src/managers/KeybindManager.cpp modified: src/managers/XWaylandManager.cpp modified: src/render/OpenGL.cpp modified: src/render/Renderer.cpp modified: src/render/decorations/CHyprBorderDecoration.cpp modified: src/render/decorations/CHyprDropShadowDecoration.cpp modified: src/render/decorations/CHyprGroupBarDecoration.cpp * add setprop toggle modified: src/config/ConfigManager.hpp modified: src/debug/HyprCtl.cpp modified: src/desktop/Window.cpp * add setprop toggle modified: src/debug/HyprCtl.cpp * make window rules functional modified: src/config/ConfigManager.cpp modified: src/desktop/Window.cpp * minor fixes modified: src/Compositor.cpp modified: src/debug/HyprCtl.cpp modified: src/desktop/Window.hpp * properly clean layout data modified: src/desktop/Window.cpp modified: src/desktop/Window.hpp modified: src/events/Windows.cpp modified: src/layout/DwindleLayout.cpp modified: src/layout/IHyprLayout.cpp modified: src/layout/IHyprLayout.hpp modified: src/layout/MasterLayout.cpp * remove newline modified: src/events/Windows.cpp * fixes modified: src/config/ConfigManager.hpp modified: src/debug/HyprCtl.cpp modified: src/desktop/Window.cpp modified: src/desktop/Window.hpp * use CamelCase modified: src/Compositor.cpp modified: src/debug/HyprCtl.cpp modified: src/desktop/Window.cpp modified: src/desktop/Window.hpp modified: src/events/Windows.cpp modified: src/layout/IHyprLayout.cpp modified: src/managers/AnimationManager.cpp modified: src/managers/KeybindManager.cpp modified: src/managers/XWaylandManager.cpp modified: src/render/OpenGL.cpp modified: src/render/Renderer.cpp modified: src/render/decorations/CHyprBorderDecoration.cpp modified: src/render/decorations/CHyprDropShadowDecoration.cpp modified: src/render/decorations/CHyprGroupBarDecoration.cpp
* renderer: don't skip back background on preBlurQueuedVaxry2024-07-021-1/+1
| | | | fixes #6332
* renderer: don't use the surface counter in popup iterationsVaxry2024-06-251-1/+1
| | | | fixes #6663
* renderer: shrink occlusion rect if blur is usedVaxry2024-06-211-3/+9
| | | | | | if we are blurring, we cannot be sure whether the occluded region won't be included in the expanded damage. If it is, we'd get dark shimmers. fixes #6547
* damageRing: move to hyprland implVaxry2024-06-191-6/+10
| | | | A small wlroots utility we were still using.
* core: Move to hyprutils for MathVaxry2024-06-191-9/+7
| | | | | | Moves CRegion, CBox and Vector2D over to hyprutils. Requires hyprutils>=0.1.4
* subcompositor/renderer: fixup handling of subsurfaces below the main oneVaxry2024-06-171-1/+11
| | | | some apps (notably vlc 4) place a subsurface below the main surface (which is kinda cursed) but we have to accomodate for that