fix performance issue of screensaver on Kobo

now loadDocument will not render the document and getCoverPageImage will
be much faster.
pull/861/head
chrox 10 years ago
parent 288a49252e
commit fd9e3d57f3

@ -220,9 +220,9 @@ function ReaderUI:init()
document = self.document,
})
else
-- make sure we load document first before calling any callback
-- make sure we render document first before calling any callback
table.insert(self.postInitCallback, function()
self.document:loadDocument()
self.document:render()
end)
-- typeset controller
table.insert(self, ReaderTypeset:new{

@ -108,20 +108,25 @@ function CreDocument:init()
-- set fallback font face
self._document:setStringProperty("crengine.font.fallback.face", self.fallback_font)
-- set visible page count in landscape
if math.max(Screen:getWidth(), Screen:getHeight()) / Screen:getDPI()
< DCREREADER_TWO_PAGE_THRESHOLD then
self:setVisiblePageCount(1)
end
self.is_open = true
self.info.has_pages = false
self:_readMetadata()
self.info.configurable = true
end
function CreDocument:loadDocument()
function CreDocument:render()
-- load document before rendering
self._document:loadDocument(self.file)
self._document:renderDocument()
if not self.info.has_pages then
self.info.doc_height = self._document:getFullHeight()
end
if math.max(Screen:getWidth(),Screen:getHeight())/Screen:getDPI() < DCREREADER_TWO_PAGE_THRESHOLD then
self:setVisiblePageCount(1)
end
end
function CreDocument:close()
@ -133,6 +138,7 @@ function CreDocument:getPageCount()
end
function CreDocument:getCoverPageImage()
-- don't need to render document in order to get cover image
self._document:loadDocument(self.file)
local data, size = self._document:getCoverPageImageData()
if data and size then

@ -1 +1 @@
Subproject commit 446aa931453c0c18ecdc7e94cf827730de6bd31d
Subproject commit 11a738de463d3c3e9c776ab10a35447bb445d717
Loading…
Cancel
Save