Mailson Menezes
7a41ee5d50
Fix tiles issue when zooming out a rotated document
...
The issue can be reproduced by zooming a rotated document to 1600% then
back to 800%
REVIEW: 110905
2013-06-22 11:54:36 +02:00
Mailson Menezes
c0ae3d2e9f
Fix issues where some rotated tiles were rejected
2012-11-15 20:50:34 -03:00
Mailson Menezes
7528fb8c88
Change TilesManager::tilesAt use
...
- The second parameter has changed to an enum
- Now Page::tilesAt only returns tiles with pixmaps
2012-11-15 20:41:17 -03:00
Mailson Menezes
b762e5f10e
Fix issue where the tiles seemed to be deformed while rotating the page
...
Also, don't mark rotated pixmaps as dirty since we are already updating
them
2012-11-12 13:11:34 -03:00
Fabio D'Urso
d3eb739814
Merged TilesManager::setWidth and setHeight into a single setSize method
2012-11-11 21:39:23 +01:00
Mailson Menezes
de565cdd2a
Reimplement Tile::operator=
...
QList requires its members to have an assignment operator
2012-11-10 01:54:09 -03:00
Fabio D'Urso
85d5f043a2
Removed useless Tile::operator=
2012-11-09 17:49:23 +01:00
Fabio D'Urso
437ddad588
Hide tiles manager within okularcore
...
Only the Tile class (tile.h) is visible from the outside
2012-11-08 20:26:17 -03:00
Fabio D'Urso
f2acce05a3
Count used memory using a qulonglong
2012-11-08 19:33:22 +01:00
Fabio D'Urso
b4b742a575
Fixed sign in rankTiles
2012-11-08 19:12:05 +01:00
Mailson Menezes
f91f55d117
Split tile structure in Tile and TileNode
...
The new class TileNode represents a node in the tree structure
whereas Tile is just a data structure to store the pixmap and tile rect
and is used outside tiles manager.
2012-11-08 14:44:57 -03:00
Mailson Menezes
da54ffdd8e
Improve the evicting algorithm
...
The miss counter was taken away. Now the algorithm relies on the
distance between the tiles and the viewport.
Also the visibleRect() and setVisibleRect() methods were removed from
TilesManager since we now pass this information to
TilesManager::cleanupPixmapMemory()
2012-11-08 10:58:08 -03:00
Mailson Menezes
f798ef22d1
Refactor tiles manager code as suggested by Fabio D'urso
2012-11-08 08:50:33 -03:00
Mailson Menezes
1fc67e9e99
Fix memory leaking on tiles merge
2012-11-08 08:50:08 -03:00
Mailson Menezes
a61e1e0834
Fix annotations bug
...
The annotations created in tiles mode were not shown unless the user
changed the zoom level.
2012-10-25 09:24:11 -03:00
Mailson Menezes
6032dae9b4
Remove request mutex
...
This mutex at tiles manager is not actually necessary since any of the
related code will run on a different thread.
2012-10-10 17:35:55 -03:00
Mailson Menezes
ca89ffe96c
Avoid making unnecessary requests
...
Some requests may take a while to process in a highly zoomed region.
Since those requests are not yet finished, other requests to the same
region are likely to be made (specially if the user is scrolling fast)
and the generator will have to render the same region repeatedly.
Also when changing zoom rapidly some pixmaps can arrive at the tiles
manager when another request has already been posted. This pixmap is not
necessary anymore and should be discarded (the tiles manager will get a
new pixmap anyway).
2012-09-24 22:41:57 -03:00
Mailson Menezes
9b70d1875a
Remove debug painting off tiles manager
...
The extra painting is for debug purposes only. It may change depending
on what the developer wants to fix and should not go upstream.
2012-08-26 18:25:15 -03:00
Mailson Menezes
116e4f9b80
Remove annoying warning
...
Comparison between signed and unsigned values.
2012-08-26 14:39:35 -03:00
Mailson Menezes
42350c87df
Properly destruct TilesManager
2012-08-24 13:54:29 -03:00
Mailson Menezes
1bfe8610c9
Do not evict visible tiles
...
Also avoid trying to evict more tiles if the tiles manager is empty (all
tiles were previously removed)
2012-08-20 00:47:33 -03:00
Mailson Menezes
d2f236e82f
Document Tile and TilesManager
2012-08-19 18:56:54 -03:00
Mailson Menezes
d3a0fa057a
Split tiles before the request
...
The splitting was only executed after the pixmap arrived the tiles
manager. That was bad and likely to lead to an unnecessary rendering in
the case of a big tile that would be split after all.
This also fixes a bug where some tiles weren't updated.
2012-08-18 17:31:16 -03:00
Mailson Menezes
851a503e81
Move tiles manager to a private header
2012-08-17 15:23:58 -03:00
Mailson Menezes
401c3f7e5d
Add rotation support to tiles manager
2012-08-17 14:30:53 -03:00
Mailson Menezes
67c59c2c44
Fix underflow on memory cleanup in tiles manager
2012-08-15 15:25:36 -03:00
Mailson Menezes
3d630fbb2a
Remove unused tiles
2012-08-13 01:09:38 -03:00
Mailson Menezes
82510818c4
Split and merge tiles according to zoom level
...
To allow more zooming, split tiles when it reaches an arbitrary size.
2012-08-05 15:50:02 -03:00
Mailson Menezes
032f03a0e8
Track memory usage of tiles
2012-07-16 18:19:02 -03:00
Mailson Menezes
9c09eb938e
Use tiles only when it's necessary
...
In other words: don't use tiles when the page is not big enough
2012-07-16 18:19:01 -03:00
Mailson Menezes
de2ee00ff8
Improvements on tiles manager
...
- Made improvements on the code (not performance)
- Fix issue of not painting dirty tiles
2012-07-11 02:14:50 -03:00
Mailson Menezes
124da866e8
Add license header to tile manager files
2012-07-10 21:48:30 -03:00
Mailson Menezes
9f3cf45e37
Rendering with a tiles manager
...
Currently it's only available for PDFs and does not support rotation.
2012-07-08 18:08:38 -03:00