From cfa5c8a941c78d19ec6038505b0157345ed4c328 Mon Sep 17 00:00:00 2001 From: poire-z Date: Sun, 15 Oct 2017 13:03:42 +0200 Subject: [PATCH] djvu: enable color rendering (#3361) * djvu: enable color rendering * Bump base --- base | 2 +- frontend/document/djvudocument.lua | 12 ++++++++++-- frontend/document/document.lua | 4 +++- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/base b/base index 6002daccd..78ebb308d 160000 --- a/base +++ b/base @@ -1 +1 @@ -Subproject commit 6002daccd327e7227228c092510e4df20321abad +Subproject commit 78ebb308df595c3c6388047db032f6a909820b12 diff --git a/frontend/document/djvudocument.lua b/frontend/document/djvudocument.lua index 1ccb90f4e..841fae067 100644 --- a/frontend/document/djvudocument.lua +++ b/frontend/document/djvudocument.lua @@ -1,3 +1,4 @@ +local Blitbuffer = require("ffi/blitbuffer") local Document = require("document/document") local DrawContext = require("ffi/drawcontext") local KoptOptions = require("ui/data/koptoptions") @@ -10,7 +11,7 @@ local DjvuDocument = Document:new{ dc_null = DrawContext.new(), options = KoptOptions, koptinterface = nil, - is_color_capable = false, + color_bb_type = Blitbuffer.TYPE_BBRGB24, } -- check DjVu magic string to validate @@ -33,7 +34,7 @@ function DjvuDocument:init() end local ok - ok, self._document = pcall(djvu.openDocument, self.file, self.djvulibre_cache_size) + ok, self._document = pcall(djvu.openDocument, self.file, self.render_color, self.djvulibre_cache_size) if not ok then error(self._document) -- will contain error message end @@ -43,6 +44,13 @@ function DjvuDocument:init() self:_readMetadata() end +function DjvuDocument:updateColorRendering() + Document.updateColorRendering(self) -- will set self.render_color + if self._document then + self._document:setColorRendering(self.render_color) + end +end + function DjvuDocument:getProps() local _, _, docname = self.file:find(".*/(.*)") docname = docname or self.file diff --git a/frontend/document/document.lua b/frontend/document/document.lua index 8876691bf..5984548be 100644 --- a/frontend/document/document.lua +++ b/frontend/document/document.lua @@ -35,6 +35,8 @@ local Document = { -- whether this document can be rendered in color is_color_capable = true, + -- bb type needed by engine for color rendering + color_bb_type = Blitbuffer.TYPE_BBRGB32, } @@ -337,7 +339,7 @@ function Document:renderPage(pageno, rect, zoom, rotation, gamma, render_mode) size = size.w * size.h + 64, -- estimation excerpt = size, pageno = pageno, - bb = Blitbuffer.new(size.w, size.h, self.render_color and Blitbuffer.TYPE_BBRGB32 or nil) + bb = Blitbuffer.new(size.w, size.h, self.render_color and self.color_bb_type or nil) } -- create a draw context