common/Rectangle.hpp | 36 ++++++++++++++++++++++++++++++++++-- wsd/ClientSession.cpp | 20 ++++++++++---------- wsd/DocumentBroker.cpp | 8 ++++---- 3 files changed, 48 insertions(+), 16 deletions(-)
New commits: commit 63bf882f73fdb1526a9d330fc333a67b2e2b05b4 Author: Miklos Vajna <vmik...@collabora.com> AuthorDate: Wed Nov 14 09:07:47 2018 +0100 Commit: Miklos Vajna <vmik...@collabora.com> CommitDate: Wed Nov 14 09:07:54 2018 +0100 Rectangle: make members private diff --git a/common/Rectangle.hpp b/common/Rectangle.hpp index 6089f863d..8ed2f3626 100644 --- a/common/Rectangle.hpp +++ b/common/Rectangle.hpp @@ -18,11 +18,13 @@ namespace Util /// Holds the position and size of a rectangle. struct Rectangle { +private: int _x1; int _y1; int _x2; int _y2; +public: Rectangle() : _x1(std::numeric_limits<int>::max()) , _y1(std::numeric_limits<int>::max()) @@ -49,16 +51,46 @@ struct Rectangle _y2 = rectangle._y2; } - int getLeft() + void setLeft(int x1) + { + _x1 = x1; + } + + int getLeft() const { return _x1; } - int getTop() + void setRight(int x2) + { + _x2 = x2; + } + + int getRight() const + { + return _x2; + } + + void setTop(int y1) + { + _y1 = y1; + } + + int getTop() const { return _y1; } + void setBottom(int y2) + { + _y2 = y2; + } + + int getBottom() const + { + return _y2; + } + int getWidth() { return _x2 - _x1; diff --git a/wsd/ClientSession.cpp b/wsd/ClientSession.cpp index f6625470c..20819f83c 100644 --- a/wsd/ClientSession.cpp +++ b/wsd/ClientSession.cpp @@ -1140,10 +1140,10 @@ size_t ClientSession::countIdenticalTilesOnFly(const TileDesc& tile) const Util::Rectangle ClientSession::getNormalizedVisibleArea() const { Util::Rectangle normalizedVisArea; - normalizedVisArea._x1 = std::max(_clientVisibleArea._x1, 0); - normalizedVisArea._y1 = std::max(_clientVisibleArea._y1, 0); - normalizedVisArea._x2 = _clientVisibleArea._x2; - normalizedVisArea._y2 = _clientVisibleArea._y2; + normalizedVisArea.setLeft(std::max(_clientVisibleArea.getLeft(), 0)); + normalizedVisArea.setTop(std::max(_clientVisibleArea.getTop(), 0)); + normalizedVisArea.setRight(_clientVisibleArea.getRight()); + normalizedVisArea.setBottom(_clientVisibleArea.getBottom()); return normalizedVisArea; } @@ -1259,11 +1259,11 @@ void ClientSession::handleTileInvalidation(const std::string& message, if(part == _clientSelectedPart || _isTextDocument) { // Iterate through visible tiles - for(int i = std::ceil(normalizedVisArea._y1 / _tileHeightTwips); - i <= std::ceil(normalizedVisArea._y2 / _tileHeightTwips); ++i) + for(int i = std::ceil(normalizedVisArea.getTop() / _tileHeightTwips); + i <= std::ceil(normalizedVisArea.getBottom() / _tileHeightTwips); ++i) { - for(int j = std::ceil(normalizedVisArea._x1 / _tileWidthTwips); - j <= std::ceil(normalizedVisArea._x2 / _tileWidthTwips); ++j) + for(int j = std::ceil(normalizedVisArea.getLeft() / _tileWidthTwips); + j <= std::ceil(normalizedVisArea.getRight() / _tileWidthTwips); ++j) { // Find tiles affected by invalidation Util::Rectangle tileRect (j * _tileWidthTwips, i * _tileHeightTwips, _tileWidthTwips, _tileHeightTwips); @@ -1309,8 +1309,8 @@ void ClientSession::traceTileBySend(const TileDesc& tile, bool deduplicated) { // Track only tile inside the visible area if(_clientVisibleArea.hasSurface() && - tile.getTilePosX() >= _clientVisibleArea._x1 && tile.getTilePosX() <= _clientVisibleArea._x2 && - tile.getTilePosY() >= _clientVisibleArea._y1 && tile.getTilePosY() <= _clientVisibleArea._y2) + tile.getTilePosX() >= _clientVisibleArea.getLeft() && tile.getTilePosX() <= _clientVisibleArea.getRight() && + tile.getTilePosY() >= _clientVisibleArea.getTop() && tile.getTilePosY() <= _clientVisibleArea.getBottom()) { _oldWireIds.insert(std::pair<std::string, TileWireId>(tileID, tile.getWireId())); } diff --git a/wsd/DocumentBroker.cpp b/wsd/DocumentBroker.cpp index fd8fdd4ca..c14e5a111 100644 --- a/wsd/DocumentBroker.cpp +++ b/wsd/DocumentBroker.cpp @@ -1440,10 +1440,10 @@ void DocumentBroker::sendRequestedTiles(const std::shared_ptr<ClientSession>& se if (normalizedVisArea.hasSurface() && session->getTileWidthInTwips() != 0 && session->getTileHeightInTwips() != 0) { - const int tilesFitOnWidth = std::ceil(normalizedVisArea._x2 / session->getTileWidthInTwips()) - - std::ceil(normalizedVisArea._x1 / session->getTileWidthInTwips()) + 1; - const int tilesFitOnHeight = std::ceil(normalizedVisArea._y2 / session->getTileHeightInTwips()) - - std::ceil(normalizedVisArea._y1 / session->getTileHeightInTwips()) + 1; + const int tilesFitOnWidth = std::ceil(normalizedVisArea.getRight() / session->getTileWidthInTwips()) - + std::ceil(normalizedVisArea.getLeft() / session->getTileWidthInTwips()) + 1; + const int tilesFitOnHeight = std::ceil(normalizedVisArea.getBottom() / session->getTileHeightInTwips()) - + std::ceil(normalizedVisArea.getTop() / session->getTileHeightInTwips()) + 1; const int tilesInVisArea = tilesFitOnWidth * tilesFitOnHeight; tilesOnFlyUpperLimit = std::max(TILES_ON_FLY_MIN_UPPER_LIMIT, tilesInVisArea * 1.1f); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits