Night mode: keep some images non-inverted

Have the code pre-invert some images when in night mode,
so they get inverted back to normal by night mode.
This will allow images to be displayed normally in
the following contexts:
- images in credocument pages
- long-press on images in credocument viewed in ImageViewer
- cover thumbnails in File browser and History
- full size covers when viewed in ImageViewer
- images in Wikipedia lookup results
This commit is contained in:
poire-z
2019-03-30 00:04:38 +01:00
parent 4a51e24b7a
commit 8f019b8183
2 changed files with 22 additions and 7 deletions

View File

@@ -365,14 +365,22 @@ function CreDocument:drawCurrentView(target, x, y, rect, pos)
end
-- TODO: self.buffer could be re-used when no page/layout/highlights
-- change has been made, to avoid having crengine redraw the exact
-- same buffer.
-- And it could only change when some other methods from here are called
--local start_clock = os.clock()
self._drawn_images_count, self._drawn_images_surface_ratio = self._document:drawCurrentPage(self.buffer, self.render_color)
--print(string.format("CreDocument:drawCurrentView: Rendering took %9.3f ms", (os.clock() - start_clock) * 1000))
--start_clock = os.clock()
-- same buffer. And it could only change when some other methods
-- from here are called
-- If in night mode, ask crengine to invert all images, so they
-- get displayed in their original colors when the whole screen
-- is inverted by night mode
local invert_images = G_reader_settings:isTrue("night_mode")
-- local start_clock = os.clock()
self._drawn_images_count, self._drawn_images_surface_ratio =
self._document:drawCurrentPage(self.buffer, self.render_color, invert_images)
-- print(string.format("CreDocument:drawCurrentView: Rendering took %9.3f ms", (os.clock() - start_clock) * 1000))
-- start_clock = os.clock()
target:blitFrom(self.buffer, x, y, 0, 0, rect.w, rect.h)
--print(string.format("CreDocument:drawCurrentView: Blitting took %9.3f ms", (os.clock() - start_clock) * 1000))
-- print(string.format("CreDocument:drawCurrentView: Blitting took %9.3f ms", (os.clock() - start_clock) * 1000))
end
function CreDocument:drawCurrentViewByPos(target, x, y, rect, pos)