Hi, Regarding the TextDocument threaded rendering issue, I implemented a clone method to return an EpubDocument. QTextDocument::clone() is not a virtual method, so either we'll have to make it virtual or change the signature of clone method in EpubDocument. I made QTextDocument::clone() virtual.
It worked fine, but despite of all the optimizations I can do, it takes around 400 to 500 ms to clone & 600 - 700 ms to draw, which is huge! I checked QTextDocument::clone() it is a bit faster (because it has direct access to the private classes), but won't make any difference. To make it even faster I tried it without cloning ( kept mutex locking ), it takes around 200 to 500ms, still bad. Finally, to get an estimate about what it takes without threading, I tried the non-threaded version, & to my surprise it broke all records 0 to 100ms depending on the content. Here I learnt one thing, drawing from a just cloned QTextDocument takes more time, and I guess that's because of the cachedResources. I even tried QAtomicPointer, but it breaks at several places. I tried a lot to make it work faster, because I know you have announced it in Acadamy that Okular will be getting threaded rendering for QTextDocument, but may be for now it is better to leave it single threaded. Note: I used QElapsedTimer to get the estimated time. Cheers, Jaydeep
_______________________________________________ Okular-devel mailing list Okular-devel@kde.org https://mail.kde.org/mailman/listinfo/okular-devel