Commit Graph

40 Commits (7210fb478d8d0c6aa5bb8e0ae3e0fc67dd730874)

Author SHA1 Message Date
NiLuJe 7210fb478d
Faster blitting @ BB8/BBRGB32 when no processing is needed (#4847)
* Pickup the eponymous blitting performance tweaks from koreader/koreader-base#878
* Cleanup BitOpts usage (require & cache)
* Unify oddness checks (MOD -> AND)
* Enforce the native Portrait orientation on Kobo (except @ 16bpp, i.e., KSM w/ 8bpp swap disabled), to allow for faster blitting when unrotted.
* Switch CRe BB to 32BPP on color screens
* Minor cleanups
5 years ago
NiLuJe 9be3455ccc Don't crash when sizeUtf8Text is called on a nil
By returning a table with the right fields instead of nil.

Re #4845
5 years ago
Qingping Hou 634fed5487 use device instead of canvascontext in UI modules 5 years ago
Qingping Hou 1605409c60 rename runtimectl to document/canvascontext 5 years ago
Qingping Hou 02eca23649 decouple device from document modules 5 years ago
poire-z 620542b055
Text input related fixes & enhancements (#4124)
InputText: checks whether provided content can be given
back unaltered, which may not be the case after it is
splitted to UTF8 chars if the text is binary content.
Prevent editing text if that is the case.
Adds InputText and InputDialog :isEditable() and :isEdited()
methods.
Also accounts for the scrollbar width when measuring text
to prevent it from being displayed when not needed.
Also ensure a minimal size of the scrollbar thumb so it is
rendered when huge text with many lines is displayed.

Virtual keyboard: Hold on Backspace: delete from cursor
to start of line instead of clearing all text content.
6 years ago
Frans de Jonge d931869ae3 [doc] RenderText:getGlyph() and truncateTextByWidth() (#3140) 7 years ago
Robert c78f6989b4 Fix: truncateTextByWidth() should respect kerning and bold (#3139) 7 years ago
poire-z ebe0c08bfb dict/wiki: definitions' text justification
This can be disabled by adding ["dict_justify"] = false to settings.reader.lua
7 years ago
Qingping Hou f95ad00b9e feat: add logger module & rewrite kobo suspend script in lua 7 years ago
robert00s 09f2db3729 Fix long filename text in history textbox (#2322)
Fix long filename text in history textbox
7 years ago
chrox f3e0d44cc4 disable jit on some modules on android
to make koreader on Android  more stable

and with these opt params:
```
require("jit.opt").start("sizemcode=64","maxmcode=64", "hotloop=10000")
```

The strategy here is that we only use precious mcode memory (jitting)
on deep loops like the several blitting methods in blitbuffer.lua and
the pixel-copying methods in mupdf.lua. So that a small amount of mcode
memory (64KB) allocated when koreader is launched in the android.lua
is enough for the program and it won't need to jit other parts of lua
code and thus won't allocate mcode memory any more which by our
observation will be harder and harder as we run koreader.
8 years ago
Qingping Hou 6fccb610c4 doc: update rendertext 8 years ago
Qingping Hou 3bec9cea89 ui(kvpage) truncate title/key/value if it's too long 8 years ago
Qingping Hou e410ce14df doc: types/functions for font and rendertext module 8 years ago
Qingping Hou 11ee8d6fcc refactor: use new KeyValuePage widget for displaying statistics 8 years ago
frankyifei 059de23037 implement GUI dialog for setting crengine fallback font 9 years ago
Qingping Hou 186673587e chore: fix some of the luacheck errors 9 years ago
Hans-Werner Hilse a82bafc63c fix handling of invalid UTF8 sequences
external data (and in bad cases our own) can contain invalid byte
sequences in UTF8 strings. A prominent example are file names.
There was a 1-off bug in calculating the allowed length for multibyte
chars, and the iterator was a bit too greedy when stumbling upon
invalid sequences, returning a single "invalid" char for a sequence
up to the point where it became invalid in calculation. Now, we present
one invalid char for the first byte of that sequence and then check
for a valid char starting with the next byte.
9 years ago
Hans-Werner Hilse 3066c86e38 Refactoring hardware abstraction
This is a major overhaul of the hardware abstraction layer.
A few notes:

General platform distinction happens in
  frontend/device.lua
which will delegate everything else to
  frontend/device/<platform_name>/device.lua
which should extend
  frontend/device/generic/device.lua

Screen handling is implemented in
  frontend/device/screen.lua
which includes the *functionality* to support device specifics.
Actually setting up the device specific functionality, however,
is done in the device specific setup code in the relevant
device.lua file.

The same goes for input handling.
10 years ago
Hans-Werner Hilse 5982e24d57 unify color specification
colors were a mixture of 4bpp integers (0=white, 15=black) and
fractional blackness levels (0=white, 1.0=black) before. This is
now unified to use the color specification of the Blitbuffer API.
10 years ago
Hans-Werner Hilse 7b1777e095 adapt widgets and text rendering to new font rendering
no background for text rendering anymore
10 years ago
Hans-Werner Hilse adbcdddb56 undo wrong use of addblitFrom()
rendertext.lua did use addblitFrom() for rendering text - i.e. blitting
the letters to a BlitBuffer. However, it used intensity=1.0, which is
the same as doing a (faster, more efficient) blitFrom(). So use that
instead.

What was probably intented here is a different kind of blitting - using
the bitbuffer of the glyph as a mask.
10 years ago
chrox 56fa8a45b7 remove rescaleByDPI since it's not reversible
alternatively we store the original size before scaling by screen DPI
and use that value when needed.
10 years ago
chrox 92219a1f1e cleanup: expand tab to 4 spaces 10 years ago
chrox 24ed02bbee add bold property for text rendering 10 years ago
Paulo Matias 9072a30cb5 Avoid off-limits dictionary title and make font size adjustable 10 years ago
chrox 63d574c3b5 less verbose on fallback text rendering 11 years ago
chrox 4cfdce6105 fix several local calls of Math.round 11 years ago
HW 09cd5c4104 Make DEBUG a require()d local 11 years ago
HW ef111b99c6 Refactored to use strictly locals 11 years ago
chrox 3f3e434157 rescale font size when fallbacks to fallback fonts
and make FreeSerif font the default font instead of DroidSansFallback

This patch should fix #272.
11 years ago
HW 25faf7e1a4 fixed bugs in implementation of utf8Chars() 11 years ago
HW 61c232e0e9 add a UTF8 character iterator
this speeds up font rendering since LuaJIT doesn't have to use
the interpreter for string.gsub(), which was used before
11 years ago
chrox bbfa6428aa add glyph fallbacks
if glyph is not found in specified fontface, fallback fonts are checked
on by one until a glyph is found.
11 years ago
chrox 01f045e7f9 add standalone glyph cache
I found it will be especially helpful to cache glyph separately
so that glyph caches won't be washed out by a single page cache.
11 years ago
chrox 26e2435fc6 render text with background and foreground 'color' 11 years ago
Qingping Hou e3b567b2b1 fix kerning for Utf8Text family methods from tigran123
refer to master pullrequest #386 and #383, related
commits are (all in master(kpv) tree):
cb25029ddd
c7b4cf71f8
379cba7b68
12 years ago
HW 60ccd7441e fixed menu info displaying, replaced debug() by DEBUG()
the replacement of debug() was necessary to be able to access the lua library "debug" (for backtraces etc.)
12 years ago
HW 9e531fc2db file reorganisation
all lua frontend files are now in the frontend/ directory.
all old code is cleaned up.
12 years ago