diff options
author | Gyuhwan Park★ <unstabler@unstabler.pl> | 2023-02-04 12:44:11 +0300 |
---|---|---|
committer | Gyuhwan Park★ <unstabler@unstabler.pl> | 2023-02-04 12:44:11 +0300 |
commit | 1e20ccc21266366f3715fac484c2545f6d142b97 (patch) | |
tree | 3cd77c2508b46a089fd19f32ddcbe509ab2dedcc | |
parent | 877b1cca50a2eb9670e901525ad6d83803adfd68 (diff) |
feature: add isNSCodec()
-rw-r--r-- | XrdpUlalacaPrivate.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/XrdpUlalacaPrivate.cpp b/XrdpUlalacaPrivate.cpp index 117c4b5..b8ea399 100644 --- a/XrdpUlalacaPrivate.cpp +++ b/XrdpUlalacaPrivate.cpp @@ -78,7 +78,7 @@ int XrdpUlalacaPrivate::decideCopyRectSize() const { return 64; } - if (isH264Codec() || isGFXH264Codec()) { + if (isNSCodec() || isH264Codec() || isGFXH264Codec()) { // ??? FIXME return RECT_SIZE_BYPASS_CREATE; } @@ -174,6 +174,7 @@ void XrdpUlalacaPrivate::updateThreadLoop() { continue; } + auto width = update.width; auto height = update.height; auto dirtyRects = update.dirtyRects; @@ -194,7 +195,7 @@ void XrdpUlalacaPrivate::updateThreadLoop() { ULIPCRect screenRect {0, 0, (short) width, (short) height}; auto copyRectSize = decideCopyRectSize(); - if (_frameId > 0 || !_fullInvalidate) { + if ((_frameId > 0 && !_fullInvalidate) || isNSCodec()) { auto copyRects = createCopyRects(*dirtyRects, copyRectSize); _mod->server_paint_rects( @@ -250,6 +251,10 @@ void XrdpUlalacaPrivate::calculateSessionSize() { _sessionSize = _screenLayouts.front(); } +bool XrdpUlalacaPrivate::isNSCodec() const { + return _clientInfo.ns_codec_id != 0; +} + bool XrdpUlalacaPrivate::isRFXCodec() const { return _clientInfo.rfx_codec_id != 0; } @@ -267,7 +272,7 @@ bool XrdpUlalacaPrivate::isGFXH264Codec() const { } bool XrdpUlalacaPrivate::isRawBitmap() const { - return !(isRFXCodec() || isJPEGCodec() || isH264Codec() || isGFXH264Codec()); + return !(isNSCodec() || isRFXCodec() || isJPEGCodec() || isH264Codec() || isGFXH264Codec()); } |