Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/neutrinolabs/ulalaca-xrdp.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGyuhwan Park <unstabler@unstabler.pl>2022-06-11 23:15:06 +0300
committerGyuhwan Park <unstabler@unstabler.pl>2022-06-11 23:15:06 +0300
commitf5cec2d0c65722d161805d81e042f0919c31c0c6 (patch)
tree6f3ce194b7ffc454c24a8b2dbbb8949bd28ad720
parent49d51ef3ab1a1bbf77e1fec8f64b24fd26b23c64 (diff)
xxx: update entire screen when lib_mod_server_monitor_full_invalidate has called
-rw-r--r--ulalaca.cpp6
-rw-r--r--ulalaca.hpp1
2 files changed, 6 insertions, 1 deletions
diff --git a/ulalaca.cpp b/ulalaca.cpp
index f5f8777..cd3d7b9 100644
--- a/ulalaca.cpp
+++ b/ulalaca.cpp
@@ -48,6 +48,7 @@ XrdpUlalaca::XrdpUlalaca():
si(nullptr),
+ _fullInvalidate(true),
_sessionSize { 0, 0, 640, 480 },
_bpp(0),
@@ -196,6 +197,7 @@ int XrdpUlalaca::lib_mod_server_monitor_resize(XrdpUlalaca *_this, int width, in
}
int XrdpUlalaca::lib_mod_server_monitor_full_invalidate(XrdpUlalaca *_this, int width, int height) {
+ _this->_fullInvalidate = true;
return 0;
}
@@ -328,7 +330,7 @@ void XrdpUlalaca::commitUpdate(const uint8_t *image, int32_t width, int32_t heig
Rect screenRect = {0, 0, (short) width, (short) height};
auto copyRectSize = decideCopyRectSize();
- if (_frameId > 0) {
+ if (_frameId > 0 || !_fullInvalidate) {
auto copyRects = createCopyRects(_dirtyRects, copyRectSize);
server_paint_rects(
@@ -352,6 +354,8 @@ void XrdpUlalaca::commitUpdate(const uint8_t *image, int32_t width, int32_t heig
width, height,
0, (_frameId++ % INT32_MAX)
);
+
+ _fullInvalidate = false;
}
_dirtyRects.clear();
diff --git a/ulalaca.hpp b/ulalaca.hpp
index 6960952..248f7e6 100644
--- a/ulalaca.hpp
+++ b/ulalaca.hpp
@@ -229,6 +229,7 @@ private:
std::unique_ptr<UnixSocket> _socket;
std::unique_ptr<ProjectionThread> _projectionThread;
+ std::atomic_bool _fullInvalidate;
std::mutex _commitUpdateLock;
std::vector<Rect> _dirtyRects;