summaryrefslogtreecommitdiff
path: root/src/managers/screenshare
Commit message (Collapse)AuthorAgeFilesLines
* renderer: more FP16 fixes (#14070)UjinT342026-05-071-5/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * fix fp16 blur with invalidation * restore tonemap code * fix fade outs * add sdr compat for unaware surfaces * use a better work space, not linear, only for sdr * fix hl tf -> wp tf * cache workbuffer descriptions * linear not normalised WIP * clear offload fb * CM math * fix includes * use precalculated cm for shadows * inner glow cm * quad cm * fix unmodified copy * codegen * cache color CM * mark blur dirty when CM/DS changes * avoid icc workbuffer * fp16 blur finish hack * fix output hdr luminances * use srgb for mirroring/sharing with fp16 * defaults people --------- Co-authored-by: Vaxry <vaxry@vaxry.net>
* screenshare: round captureBox after scaling to fix region capture at ↵Tony Miller2026-05-021-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | fractional scales (#14257) After scaling m_captureBox from logical to pixel coordinates, the box may have non-integer dimensions (e.g. logical 401x301 at scale 1.25 -> pixel 501.25x376.25). m_bufferSize is then computed as captureBox.size() and sent to the client as int32 width/height (truncating the fraction), but m_bufferSize itself stays as a fractional Vector2D. When the client allocates the integer-sized buffer and submits it, CScreenshareFrame::share() rejects it with ERROR_BUFFER_SIZE because Vector2D::operator== is exact double comparison: (501, 376) != (501.25, 376.25). The frame is sent failed, and the client retries forever. The SHARE_WINDOW path already rounds its bufferSize; the SHARE_REGION path didn't. Round the captureBox immediately after scaling so all downstream consumers (m_bufferSize, render translates) see clean integer pixel coordinates. Reproducer at scale 1.25 on a 1920x1080 monitor: wf-recorder -g '500,200 401x301' -f /tmp/x.mp4 # "Failed to copy frame, retrying..." until exit wf-recorder -g '500,200 400x300' -f /tmp/x.mp4 # works (400*1.25=500, 300*1.25=375, both integer)
* screenshare: adjust session cleanup and event emission order (#14229)Eren2026-05-012-8/+10
| | | | | | | | | | | | | | | | * fix(screenshare): adjust session cleanup and event emission order Revised the handling of `stoppedListener` initialization in `getManagedSession` to ensure correct scoping and lifecycle management. Updated the `stop` method in `CScreenshareSession` to adjust the order of `screenshareEvents` and `stopped.emit()` to prevent potential use-after-free scenarios. * fix(screenshare): ensure managedSession removal uses consistent target reference This change updates the lambda in the stopped listener to use a pre-fetched target pointer for comparison when erasing sessions. * fix(screenshare): use early-return and smart ptr comparison in session cleanup
* desktop/window: add alpha container for alpha calculationsVaxry2026-04-291-1/+2
|
* screenshare/frame: set m_copied after shm copy succeeds (#14165)Vaxry2026-04-251-0/+1
|
* renderer: Various CM fixes, part 8 of refactors (#13860)UjinT342026-04-161-3/+13
| | | Part 8 of Ujin's refactors.
* screencopy: clear buffer before rendering (#14064)outfoxxed2026-04-131-4/+4
| | | | If reusing wl_buffers when capturing a transparent window, the current frame would overlay the previous frame instead of replacing it.
* egl: move over to use hyprgraphics (#12988)Tom Englund2026-04-052-6/+8
| | | use the hyprgraphics helpers instead.
* renderer: refactor part 7: api fixes (#13631)UjinT342026-03-284-65/+59
| | | | | | | Part 7 of ujin's refactors --------- Co-authored-by: Vaxry <vaxry@vaxry.net>
* screencopy: check share session state (#13839)UjinT342026-03-253-1/+6
|
* screencopy: fix crash in screensharing toplevel with invalid handle (#13781)ssareta2026-03-191-0/+9
|
* source: c-f for new clang versionVaxry2026-03-151-3/+3
|
* renderer: fix share window projection (#13695)UjinT342026-03-111-1/+1
|
* renderer: refactor gl renderer (#13488)UjinT342026-03-072-92/+67
|
* renderer: refactor projection setting (#13485)UjinT342026-03-071-3/+3
|
* renderer: move m_renderData to renderer (#13474)UjinT342026-03-072-15/+15
|
* renderer: refactor resources and flags (#13471)UjinT342026-03-073-8/+9
|
* renderer: refactor Texture, Framebuffer and Renderbuffer (#13437)UjinT342026-03-063-26/+24
| | | Part 1 of the renderer refactors
* renderer: shader variants refactor (#13434)UjinT342026-03-061-2/+7
| | | Part 0 of renderer reworks.
* screencopy: fix isOutputBeingSSd (#13586)Vaxry2026-03-051-3/+3
| | | use sessions instead of pending frames
* screenshare: improve destroy logic of objects (#13554)Ikalco2026-03-053-10/+8
|
* screencopy: fix minor crash (#13566)Ikalco2026-03-041-1/+4
|
* render/cm: add ICC profile pipeline (#12711)Vaxry2026-03-043-7/+14
| | | Adds an ICC profile pipeline, loading via config and applying via 3D LUTs.
* screencopy: scale window region for toplevel export (#13442)Vaxry2026-02-281-1/+1
|
* event: refactor HookSystem into a typed event bus (#13333)Vaxry2026-02-221-5/+5
| | | | | Refactors the old HookSystem into a typed event bus with clear separation, discovery and types.
* protocols: implement image-capture-source-v1 and image-copy-capture-v1 (#11709)Ikalco2026-02-225-0/+1308
Implements the new screencopy protocols