mirror of
https://github.com/koreader/koreader.git
synced 2025-08-10 00:52:38 +00:00
Optimize DjVu drawPage() function
We only need to fill the image buffer with white colour if DjVu page rendering function did not fill it in with page data.
This commit is contained in:
committed by
Qingping Hou
parent
8ccbfba6cc
commit
0d740d2b3b
15
djvu.c
15
djvu.c
@@ -476,13 +476,11 @@ static int drawPage(lua_State *L) {
|
||||
unsigned char adjusted_low[16], adjusted_high[16];
|
||||
int i, adjust_pixels = 0;
|
||||
ddjvu_rect_t pagerect, renderrect;
|
||||
uint8_t *imagebuffer = malloc((bb->w)*(bb->h)+1);
|
||||
int bbsize = (bb->w)*(bb->h)+1;
|
||||
uint8_t *imagebuffer = malloc(bbsize);
|
||||
|
||||
/*printf("@page %d, @@zoom:%f, offset: (%d, %d)\n", page->num, dc->zoom, dc->offset_x, dc->offset_y);*/
|
||||
|
||||
/* fill pixel map with white color */
|
||||
memset(imagebuffer, 0xFF, (bb->w)*(bb->h)+1);
|
||||
|
||||
/* render full page into rectangle specified by pagerect */
|
||||
pagerect.x = 0;
|
||||
pagerect.y = 0;
|
||||
@@ -513,13 +511,8 @@ static int drawPage(lua_State *L) {
|
||||
* So we don't set rotation here.
|
||||
*/
|
||||
|
||||
ddjvu_page_render(page->page_ref,
|
||||
djvu_render_mode,
|
||||
&pagerect,
|
||||
&renderrect,
|
||||
page->doc->pixelformat,
|
||||
bb->w,
|
||||
imagebuffer);
|
||||
if (!ddjvu_page_render(page->page_ref, djvu_render_mode, &pagerect, &renderrect, page->doc->pixelformat, bb->w, imagebuffer))
|
||||
memset(imagebuffer, 0xFF, bbsize);
|
||||
|
||||
uint8_t *bbptr = bb->data;
|
||||
uint8_t *pmptr = imagebuffer;
|
||||
|
||||
Reference in New Issue
Block a user