A single display update can now result in multiple commands / update
code (FastPathUpdate).
The update dispatching and bitmap encoding is now done by the
UpdateEncoder itself.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Trying to share a common buffer creates all sort of complicated lifetime
issues when trying to move the encoding to a 'static handler, or when
implementing iterators. It's not worth it.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Windows seems to be confused if the client replies with more formats, or
unknown formats (opus).
---------
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Co-authored-by: Benoît Cortier <3809077+CBenoit@users.noreply.github.com>
As I was debugging some related issue, I implemented that. It may become
useful some day.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
"update_rectangle" is set to empty(). The surface updates are then added
by "union". But a union with an empty rectangle at (0,0) is still a
rectangle at (0,0). We end up with big region updates rooted at (0,0)...
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Move the client ReqwestNetworkClient to ironrdp-tokio, so other clients
can optionally use the implementation.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Bumps the patch group with 2 updates in the / directory:
[image](https://github.com/image-rs/image) and
[clap](https://github.com/clap-rs/clap).
Updates `image` from 0.25.5 to 0.25.6
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/image-rs/image/blob/main/CHANGES.md">image's
changelog</a>.</em></p>
<blockquote>
<h3>Version 0.25.6</h3>
<p>Features:</p>
<ul>
<li>Improved format detection (<a
href="https://redirect.github.com/image-rs/image/pull/2418">#2418</a>)</li>
<li>Implement writing ICC profiles for JPEG and PNG images (<a
href="https://redirect.github.com/image-rs/image/pull/2389">#2389</a>)</li>
</ul>
<p>Bug fixes:</p>
<ul>
<li>JPEG encoding bugfix (<a
href="https://redirect.github.com/image-rs/image/pull/2387">#2387</a>)</li>
<li>Expanded ICO format detection (<a
href="https://redirect.github.com/image-rs/image/pull/2434">#2434</a>)</li>
<li>Fixed EXR bug with NaNs (<a
href="https://redirect.github.com/image-rs/image/pull/2381">#2381</a>)</li>
<li>Various documentation improvements</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="f337e27aad"><code>f337e27</code></a>
Release 0.25.6 (<a
href="https://redirect.github.com/image-rs/image/issues/2441">#2441</a>)</li>
<li><a
href="0166f687e9"><code>0166f68</code></a>
CI: add num-traits to public (<a
href="https://redirect.github.com/image-rs/image/issues/2446">#2446</a>)</li>
<li><a
href="ca9e2dceb4"><code>ca9e2dc</code></a>
add links to readme (<a
href="https://redirect.github.com/image-rs/image/issues/2437">#2437</a>)</li>
<li><a
href="95be33928e"><code>95be339</code></a>
Making clippy happy (<a
href="https://redirect.github.com/image-rs/image/issues/2439">#2439</a>)</li>
<li><a
href="c62d3ace61"><code>c62d3ac</code></a>
Detect image/vnd.microsoft.icon mime types as ImageFormat::Ico (<a
href="https://redirect.github.com/image-rs/image/issues/2434">#2434</a>)</li>
<li><a
href="85f2412d55"><code>85f2412</code></a>
Fix missing spaces in JpegDecoder error message (<a
href="https://redirect.github.com/image-rs/image/issues/2433">#2433</a>)</li>
<li><a
href="b22ba14127"><code>b22ba14</code></a>
Remove limits when parsing JPEG metadata (<a
href="https://redirect.github.com/image-rs/image/issues/2429">#2429</a>)</li>
<li><a
href="4ef6f1505c"><code>4ef6f15</code></a>
Fix unbalanced backticks in doc comments (<a
href="https://redirect.github.com/image-rs/image/issues/2427">#2427</a>)</li>
<li><a
href="d4054385a1"><code>d405438</code></a>
Reduce typo count (<a
href="https://redirect.github.com/image-rs/image/issues/2426">#2426</a>)</li>
<li><a
href="68159de1c1"><code>68159de</code></a>
Update resize and blurs doc (<a
href="https://redirect.github.com/image-rs/image/issues/2424">#2424</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/image-rs/image/compare/v0.25.5...v0.25.6">compare
view</a></li>
</ul>
</details>
<br />
Updates `clap` from 4.5.32 to 4.5.34
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/clap-rs/clap/releases">clap's
releases</a>.</em></p>
<blockquote>
<h2>v4.5.34</h2>
<h2>[4.5.34] - 2025-03-27</h2>
<h3>Fixes</h3>
<ul>
<li><em>(help)</em> Don't add extra blank lines with
<code>flatten_help(true)</code> and subcommands without arguments</li>
</ul>
<h2>v4.5.33</h2>
<h2>[4.5.33] - 2025-03-26</h2>
<h3>Fixes</h3>
<ul>
<li><em>(error)</em> When showing the usage of a suggestion for an
unknown argument, don't show the group</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/clap-rs/clap/blob/master/CHANGELOG.md">clap's
changelog</a>.</em></p>
<blockquote>
<h2>[4.5.34] - 2025-03-27</h2>
<h3>Fixes</h3>
<ul>
<li><em>(help)</em> Don't add extra blank lines with
<code>flatten_help(true)</code> and subcommands without arguments</li>
</ul>
<h2>[4.5.33] - 2025-03-26</h2>
<h3>Fixes</h3>
<ul>
<li><em>(error)</em> When showing the usage of a suggestion for an
unknown argument, don't show the group</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="5d2cdac3e6"><code>5d2cdac</code></a>
chore: Release</li>
<li><a
href="f1c10ebe58"><code>f1c10eb</code></a>
docs: Update changelog</li>
<li><a
href="a4d1a7fe2b"><code>a4d1a7f</code></a>
chore(ci): Take a break from template updates</li>
<li><a
href="e95ed396c4"><code>e95ed39</code></a>
Merge pull request <a
href="https://redirect.github.com/clap-rs/clap/issues/5775">#5775</a>
from vivienm/master</li>
<li><a
href="18f8d4c3f5"><code>18f8d4c</code></a>
chore(deps): Update Rust Stable to v1.82 (<a
href="https://redirect.github.com/clap-rs/clap/issues/5788">#5788</a>)</li>
<li><a
href="f35d8e09fb"><code>f35d8e0</code></a>
Merge pull request <a
href="https://redirect.github.com/clap-rs/clap/issues/5787">#5787</a>
from epage/template</li>
<li><a
href="1389d7d689"><code>1389d7d</code></a>
chore: Update from '_rust/main' template</li>
<li><a
href="dbc9faa79d"><code>dbc9faa</code></a>
chore(ci): Initialize git for template update</li>
<li><a
href="3dac2f3683"><code>3dac2f3</code></a>
chore(ci): Get history for template update</li>
<li><a
href="e1f77dacf1"><code>e1f77da</code></a>
chore(ci): Fix branch for template update</li>
<li>Additional commits viewable in <a
href="https://github.com/clap-rs/clap/compare/clap_complete-v4.5.32...clap_complete-v4.5.34">compare
view</a></li>
</ul>
</details>
<br />
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
It should reflect client drawing state.
In following changes, we will fix it to draw bitmap updates on it, to
keep it up to date.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
The bitmap encoder dispatching code was becoming convoluted and the same
struct was handling PduEncoding and various bitmap encoding handling.
Instead, split UpdateEncoder in different types and concerns.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Dealing with multiple formats is sufficiently annoying, there isn't much
need for awkward image layout. This was done for efficiency reason for
bitmap encoding, but bitmap is really inefficient anyway and very few
servers will actually provide bottom to top images (except with GL/GPU
textures, but this is not in scope yet).
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Give a hint to the backend when the channel is actually connected &
ready to process messages.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>