summaryrefslogtreecommitdiff
path: root/src/render/OpenGL.cpp
Commit message (Collapse)AuthorAgeFilesLines
* internal: Move CMonitor to SP (#8178)Vaxry2024-10-191-11/+11
| | | | | * move monitors to sp * XD
* opengl: use GL_CLAMP_TO_EDGE instead of GL_CLAMPVaxry2024-10-051-2/+2
| | | | avoid error spam on select hw
* renderer: Fix resize artifacts (stretching, bumps) (#7499)Vaxry2024-10-051-0/+3
|
* opengl: remove debug logVaxry2024-09-261-2/+0
|
* Internal: move to Mat3x3 from hyprutils (#7902)Vaxry2024-09-251-82/+60
| | | | | | | | | * Meson: require hyprutils >= 0.2.3 * flake.lock: update hyprutils --------- Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
* xdg-dialog: implement new protocolVaxry2024-08-301-3/+2
|
* renderer: better lockscreen dead behavior (#7574)Vaxry2024-08-291-9/+110
| | | | | --------- Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
* misc: constify the remaining for loops (#7534)Tom Englund2024-08-261-27/+27
| | | now we roll loops at blazing constified speed.
* core: make most for loops use const references (#7527)Tom Englund2024-08-261-4/+4
| | | | why not let the compiler optimise things for us at hyprspeeds when we can.
* logs: Add file path to asset ERR log (#7336)davc0n2024-08-141-1/+1
|
* internal: introduce new types to avoid unsigned int rollover and signed int ↵Tom Englund2024-08-081-8/+8
| | | | | | | | | | | | | | | | | | | | 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 crashes on inaccessible files for bgVaxry2024-08-061-6/+4
|
* renderer: Explicit sync fixes (#7151)Vaxry2024-08-061-14/+18
| | | | | Enables explicit sync by default for most platforms `misc:no_direct_scanout` -> `render:direct_scanout`
* CMake, Meson: install config and wallpapers to DATADIR/hyprMihai Fufezan2024-08-041-3/+5
| | | | OpenGL: get wallpapers dir from DATAROOTDIR
* core: add a destructor to CHyprOpenglImpl and avoid wl_container_of ↵Tom Englund2024-07-291-0/+16
| | | | | | | | | | | | | | | undefined behaviour (#7101) * protocols: avoid undefined behaviour in C macro to safely use wl_container_of with a class the class has to be no virtual functions, no inheritance, and uniform access control (e.g all public) work around this by putting this into a destroywrapper struct. * opengl: clean memory on destruction add a destructor and free the allocated memory and close the fd
* egl: attempt a 3.2 egl context firstVaxry2024-07-291-3/+21
|
* egl: require gles 3.0 onlyVaxry2024-07-291-1/+1
| | | | | | No clue what could break, hopefully nothing ref #6973
* opengl: destroy cairo image surface after usevaxerski2024-07-271-0/+2
|
* renderer: drastically optimize bg texture creationvaxerski2024-07-261-58/+83
| | | | stop loading 20MB images every time, dumbass
* egl: support getting the device via platform_deviceVaxry2024-07-241-14/+79
| | | | a neat EXT
* egl: avoid setting debug mode and handle legacyrendererVaxry2024-07-221-2/+5
| | | | ref #6973
* renderer: untransform textures matching display transformVaxry2024-07-221-3/+7
| | | | | | fixes #6754 This will break if the client uses a transform that is not equal to the display, reverting to old behavior. Combining transforms is left as a todo for the future.
* Core: Move to aquamarine (#6608)Vaxry2024-07-211-113/+370
| | | | | | | | | | | | | | 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>
* renderer: Make shader time always count from zero (#6903)Party Wumpus2024-07-161-4/+6
| | | | | | | * testing out an initialtime variable * Make time universally start at zero instead of exposing an initial time * Appease the CI
* config: use hyprutils helper (#6891)Mihai Fufezan2024-07-161-1/+1
| | | | | | | | | | | * flake.lock: update nix/overlays: remove xwayland overlay (merged upstream) * config: use hyprutils helper * flake.lock: update * CMake & Meson: update required versions
* renderer: partially revert previous xray fix (#6868)MightyPlaza2024-07-131-1/+1
| | | modified: src/render/OpenGL.cpp
* renderer: fix a few xray regressions (#6855)MightyPlaza2024-07-121-2/+2
| | | | | | | * fix xray unset modified: src/render/OpenGL.cpp * fix xwray unset modified: src/render/OpenGL.cpp
* core: Improve handling of window properties (#6776)MightyPlaza2024-07-111-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* core: Move to hyprutils for MathVaxry2024-06-191-19/+19
| | | | | | Moves CRegion, CBox and Vector2D over to hyprutils. Requires hyprutils>=0.1.4
* egl: fixup format modifier lookups with implicit modifiersVaxry2024-06-141-10/+22
| | | | ref #6485
* egl: assume implicit modifiers are available for old driversVaxry2024-06-091-1/+5
| | | | fixes #6367
* wayland/core: move to new impl (#6268)Vaxry2024-06-081-196/+257
| | | | | * wayland/core/dmabuf: move to new impl it's the final countdown
* renderer: render fonts with pango, add global `font_family` config option ↵giskard2024-05-221-13/+24
| | | | (#6138)
* config: move various cursor-related vars to cursor:Vaxry2024-05-091-1/+1
|
* layer-shell: move to new implVaxry2024-05-091-0/+1
| | | | Also bumps the hw-s dep
* cursor: move to a hyprland implVaxry2024-05-091-9/+77
| | | | | | | This moves wlr_cursor to a completely new impl mostly under CPointerManager Also adds beginSimple to OpenGL for simple render passes (e.g. cursor)
* internal: new shared_ptr and weak_ptr implementation (#5883)Vaxry2024-05-051-4/+4
| | | | | | | | | | | moves std::shared_ptrs to a new implementation Advantages: - you can dereference a weak_ptr directly. This will obviously segfault on a nullptr deref if it's expired. - this is useful to avoid the .lock() hell where we are 100% sure the pointer _should_ be valid. (and if it isn't, it should throw.) - weak_ptrs are still valid while the SP is being destroyed. - reasoning: while an object (e.g. CWindow) is being destroyed, its `weak_ptr self` should be accessible (the sp is still alive, and so is CWindow), but it's not because by stl it's already expired (to prevent resurrection) - this impl solves it differently. w_p is expired, but can still be dereferenced and used. Creating `s_p`s is not possible anymore, though. - this is useful in destructors and callbacks.
* layerSurface: refactor/move to a memory-safe implVaxry2024-04-301-17/+15
| | | | | Makes all the pointers smart to avoid memory issues Refactors layerSurface code to live inside desktop/layersurface
* internal: Window storage rework - part 1 (#5762)Vaxry2024-04-271-35/+36
| | | | | | | | | | | | | | | | | * Window storage rework - part 1 * format * remove useless include * fix pch * format * fix crash in dwindle * fix vram leak * prefer .expired() for bool checks
* renderer: Fix mirrored displays when transformed and preserve aspect ratio ↵Virt2024-04-241-12/+40
| | | | | | | | | | | | | (#5697) * renderer: transform mirror buffer and preserve mirror aspect ratio * renderer: render mirrors directly from offloadFB * renderer: fix formatting * renderer: use monitorMirrorFB again, but properly damage mirrors * renderer: clean mirrors after reload and support cursor zoom mirroring
* HookSystem: improve callback safetyVaxry2024-04-201-1/+1
|
* renderer: block screen shader on screencopyVaxry2024-04-031-1/+2
|
* blur: block modif only on no new optimizeVaxry2024-04-031-0/+4
|
* opengl: fix modif in blurVaxry2024-04-031-2/+0
|
* renderer: some fixes for renderModifVaxry2024-04-031-6/+55
|
* Workspace/core: Refactor workspace storage (#5380)Vaxry2024-04-021-4/+4
| | | | | * refactor workspaces to use ptrs * clang-format
* renderer: allow blurring ls popupsVaxry2024-03-251-1/+20
|
* opengl: report shader compilation errors from screen_shader (#5138)jill2024-03-211-3/+25
| | | | | | | | | | | | | | | | | * opengl: report shader compilation errors from screen_shader * opengl: prefer .data() * opengl: move shader error logging to logError * opengl: quick glGetShaderiv -> glGetProgramiv fix * opengl: typo fix * opengl: format fixes * opengl: minor compile fixes * opengl: logError -> logShaderError
* opengl: minor adjustment to getPreferredReadFormatVaxry2024-03-191-3/+3
| | | | fixes #4791
* screenShader: allow camel for screensizeVaxry2024-03-181-0/+2
| | | | ref #5059