2
0
mirror of https://github.com/koreader/koreader synced 2024-11-16 06:12:56 +00:00
Commit Graph

1091 Commits

Author SHA1 Message Date
chrox
b8131a1906 bugfix: get rid of memory leak in koptreader
Memory leak came from the master bitmap that is reused in each reflow. But the bitmap
width and height were not set to zero when bitmap was freed. When the master bitmap was
enlarged in some cases the size of the master bitmap would increase monotonically.
This patch fixes this issue by setting master bitmap width and height to zero at the
beginning of each reflow. And a memeory usage logger is added in koptreader.
2012-11-26 22:16:07 +08:00
chrox
6ac2f69805 remove koptreflow.o in make clean 2012-11-26 22:15:14 +08:00
chrox
7f5e11391f remove unused function dprintf 2012-11-26 22:14:57 +08:00
chrox
fd854c030d cleanup unused variables 2012-11-26 22:14:42 +08:00
chrox
636dbb9543 bugfix: fixed missing words in last line 2012-11-26 22:14:13 +08:00
chrox
edd18c4219 update k2pdfopt to version 1.62 2012-11-26 22:13:43 +08:00
chrox
1502fd2d08 add precache and bmp src in koptcontext 2012-11-26 22:10:49 +08:00
chrox
f981b70ac0 add multi-threaded precache
Because the lua reader is single threaded on which both user inputloop
and background page rendering is processed. Although there is a pretty
good precache system to save user's time spending on waiting for the
rendering when going to the next page, user input is indeed blocked when
running the precache thing. The situation is even worse in koptreader as
reflowing on page would usually take several second, in this period
users cannot move to the next page view even it's already in the cache.
This patch will let precache run in the background in a seperate thread
so that the koptreader is still responsive when precaching the next
page. Now it only just works. Welcome to find out bugs in it.
2012-11-26 22:10:26 +08:00
chrox
0fe8f18591 change default white margin size to 0 2012-11-26 22:09:24 +08:00
chrox
4d14cd69b2 use -O3 option in compiling libk2pdfopt
Probably we should use fomit-frame-pointer explicitly even though
fomit-frame-pointer is included by default with -O2 and -O3 just like
the Linux kernel guys doing. I found append -O3 directly to `CFLAGES`
will do the trick. So I removed the KOPT_CFLAGS variable.
2012-11-26 22:08:29 +08:00
chrox
f10feb9b94 add -fno-finite-math-only in KOPT_CFLAGS
In some compilation platform if finite-math-only option is turned
on, math functions like exp and sqrt will be dynamically linked to
finite versions which cannot be located in Kindle's GLIBC. In my
toolchain the symbol __exp_finite cannot be found in GLIBC_2.4 so
gcc just use __exp_finite in GLIBC_2.15, which will cause a run time
error in Kindle saying "version GLIBC_2.15 not found"
2012-11-26 22:07:51 +08:00
chrox
ec03261dc6 -fomit-frame-pointer is enabled at level -O, -O2, -O3 2012-11-26 22:07:27 +08:00
chrox
c22c2b3afb no need to mark source page 2012-11-26 22:06:57 +08:00
chrox
7850aab2b0 add libk2pdfopt.so.1 in customupdate 2012-11-26 22:06:04 +08:00
chrox
101e43be0d adjust gamma in k2pdfopt 2012-11-26 22:04:22 +08:00
chrox
5acf471ecb use -O3 option in k2pdfopt compilation
Koptreader will gain 20% performance boost.
2012-11-26 22:03:37 +08:00
chrox
c045205775 bugfix: no need to use crop boxes 2012-11-26 22:03:06 +08:00
chrox
a236688113 update libk2pdfopt 2012-11-26 22:02:43 +08:00
chrox
44361faeee build libk2pdfopt as a shared library 2012-11-26 22:02:09 +08:00
chrox
4494213363 Pulled update to libk2pdfopt 2012-11-26 21:59:55 +08:00
chrox
97066cfdb0 feature: add bbox support in koptreader
Reflow can be configured to use bbox which could remove
side comments and defects in the margin and get much better reflowed
page in some documents. Currently the bbox is only set in PDFReader or
DJVUReader reader. But eventually there will be bbox setting routines in
KOPTReader.
Thirdparty should be cleaned and refetched and remake to get
this feature in operation.
2012-11-26 21:59:35 +08:00
chrox
a5b28ff6f2 include k2pdfopt header in pdf.c and djvu.c and koptcontext.h 2012-11-26 21:58:53 +08:00
chrox
8430850a39 move k2pdfopt source to a submodule libk2pdfopt
Currently libk2pdfopt is staticly linked to kpdfview.
2012-11-26 21:58:32 +08:00
chrox
f70ef06ea6 use koptcontext to keep dozons of parameters for k2pdfopt 2012-11-26 21:57:23 +08:00
chrox
3a7535d350 add trim page option 2012-11-26 21:56:22 +08:00
chrox
f4e542306f update K2pdfopt to the latest version 1.60 2012-11-26 21:55:49 +08:00
chrox
f7be331318 add defect size option 2012-11-26 21:55:26 +08:00
chrox
486207ce1b add render quality option
Many users complained that the reflowing process is too slow. This is
rather a speed-quality dilemma. Trade-off can be made by decreasing the
dpi of source page. And by default quality is prefered.
2012-11-26 21:54:47 +08:00
chrox
19c0d282aa add indentation option in koptconfig
By default the indentaion detection is enabled in K2pdfopt. This will
sometimes generate very poor reflowed page when there are sidenotes on
the page which would be treated as indentation. Disabling indentaion
detection will rescue the reflowed page from this situation.
2012-11-26 21:50:34 +08:00
{Qingping,Dave} Hou
bd132ea2ad Merge pull request #595 from houqp/new_ui_code
some minor tweaks before introducing gesture detection module
2012-11-24 08:24:19 -08:00
Qingping Hou
e3617676a1 fix deprecated debug call in credocument.lua 2012-11-23 01:10:34 -05:00
Qingping Hou
9a4d6d4a2e Merge branch 'new_ui_code' of github.com:houqp/kindlepdfviewer into new_ui_code 2012-11-16 08:22:41 +08:00
Qingping Hou
262d742204 add back waitForInput timeout for emulator 2012-11-16 08:22:23 +08:00
Qingping Hou
85341d86b9 Merge branch 'new_ui_code' of github.com:houqp/kindlepdfviewer into new_ui_code 2012-11-14 22:14:24 -05:00
Qingping Hou
263c8bb110 add time subtable to lua inputevent table 2012-11-14 22:12:00 -05:00
Qingping Hou
36a4ead630 update document.lua according to API change in cre.cpp 2012-11-11 14:29:56 +08:00
Qingping Hou
818043752f refine single tap touch input simulation in input.c 2012-11-11 13:58:00 +08:00
{Qingping,Dave} Hou
8784d20816 Merge pull request #534 from houqp/new_ui_code
rewrite emu mode input handling
2012-11-05 14:08:50 -08:00
Qingping Hou
ba60e641a9 add emu_event to clean target 2012-11-05 13:36:50 -05:00
Qingping Hou
e000bde0be remove old comment in inputevent init 2012-11-05 10:50:15 -05:00
Qingping Hou
03595f8701 use os.remove instead of calling "rm" in os.execute 2012-11-05 10:27:21 -05:00
Qingping Hou
ad089c4930 delete unused macro in input.c 2012-11-04 13:43:27 +08:00
Qingping Hou
02d48dee3d use only one process for emu input event emulation
Seems that SDL is not thread-safe, so forking leads to some
strange bugs. Thus I switch back to one process implementaion.
2012-11-04 13:25:04 +08:00
Qingping Hou
9fca67b6cb add back type casting when sending event to lua stack 2012-11-04 11:24:29 +08:00
Qingping Hou
c90e2ae797 delete dulplicate code 2012-11-04 11:20:28 +08:00
Qingping Hou
c96fc292f9 adapt inputevent.lua to new emu input implementaion 2012-11-04 11:19:31 +08:00
Qingping Hou
3be08ec515 use fifofile for emu event piping
Using fifofile to pipe event makes it possible for other programs to
feed KPV input events. One use case for this might be automated testing.
2012-11-04 11:18:42 +08:00
Qingping Hou
f2bd4666fc rewrite input module for emulator
In order to use mouse to simulate touch input, we have to
generate multiple events on single SDL mouse click event.
It is every hard to achieve this in original implementaion
so I used pipe to fake a input dev as slider_watcher did.
2012-11-04 10:38:17 +08:00
Dobrica Pavlinušić
43a6781a9c Merge pull request #526 from houqp/new_ui_code
merge latest changes from master branch
2012-11-03 14:38:23 -07:00
Qingping Hou
df5ccc9530 add createInputEvent helper function 2012-11-04 02:42:56 +08:00