Skip to content

v1.24.0: Icarus

Compare
Choose a tag to compare
@NiLuJe NiLuJe released this 29 Aug 20:25
· 736 commits to master since this release
Changes:
  * CLI documentation cleanups, thanks to @fulldecent (#59)
  * On plain Linux builds, honor the FRAMEBUFFER env var (#61)
  * PocketBook: ID the PB741
  * Update to Cozette 1.11.3
  * Deal with some Y2K38 shenanigans (#63)
  * Update to Spleen 1.9.1
  * Minor code tweaks & cleanups.
  * Added support for the Kobo Elipsa, and the whole new family of SoCs that came with it (sunxi, w/ disp2 ioctls)...
    There are quite a few quirks involved, see #64 for more details.
    Double-check the API docs, as a few APIs behave differently and/or are no longer usable on sunxi,
    because of technical limitations of the platform.
  * As a part of the sunxi porting effort, a few new PoCs have popped up in the utils folder,
    the most interesting of which is probably finger_trace.c, which implements a quick'n dirty pointer trail
    as a means to test rotation & input shenanigans on Kobo. You can build it via the ftrace make target.
    As well as the sunxigrab.sh script, which allows taking screengrabs on that platform.
  * Update stb
  * The fbdepth utility is now a real boy! Since its feature set has been moved to the API (fbink_set_fb_info),
    it's been rebuilt as a proper API client.
    It has also moved to a dedicated build target, fbdepth.

API Changes:
  * fbink_get_last_rect gained a new argument,
    allowing you to choose whether the coordinates returned are run through the current rotation quirks or not.
    (This only applies to the is_ntx_quirky_landscape state).
    Previously, it behaved as if this new flag was set to true, which didn't make much sense in practice,
    as the cases where you'd actually want that are very few and far between.
  * fbink_cls gained a new argument,
    allowing you to bypass rotation quirks for the supplied coordinates.
    (e.g., you passed a rect that *already* went through said quirks).
    This obviously ties into the previous entry ;).
  * New function: fbink_rect_dump
    Allows dumping a specific rect as-is, with no positioning or rotation trickery.
    (e.g., a rect from fbink_get_last_rect).
  * New function: fbink_toggle_sunxi_ntx_pen_mode
    Allows toggling "pen" refresh mode on Kobo devices with a sunxi SoC.
  * New function: fbink_sunxi_ntx_enforce_rota (with a matching SUNXI_FORCE_ROTA_INDEX_T enum).
    On sunxi, allows controlling how rotation is handled (gyro, gyro w/ constraints, fixed àla linuxfb,
    or even matching the working buffer, provided we have some help from the custom fbdamage kernel module).
  * As a consequence, FBInkState gained a new field, sunxi_force_rota, to reflect the current state.
    It is set to FORCE_ROTA_NOTSUP on unsupported platforms.
  * FBInkState also gained a new field, sunxi_has_fbdamage, to indicate whether fbdamage is loaded or not.
    It is set to false on unsuppoorted platforms.
  * New function: fbink_invert_screen
    Simple helper to fake a nightmode swap on devices without HW inversion support.
  * Added a bunch of public enums to make switches on FBInkState's device_id field more readable:
    CERVANTES_DEVICE_ID_E, KOBO_DEVICE_ID_E, REMARKABLE_DEVICE_ID_E & POCKETBOOK_DEVICE_ID_E
    (Nothing on Kindle, as there are *many* IDs for a single device there...).
  * Added a scanline_stride field to FBInkState (matching fInfo.line_length)
  * New function: fbink_get_fb_pointer
    Exports a pointer to the backing buffer, as well as said buffer's size.
    Low-level API, mostly useful if you're using FBInk in a platform abstraction layer (e.g., a Qt5 QPA).
  * New function: fbink_set_fb_info
    Allows one to control bitdepth & rotation (precisely what used to be available only in the dedicated fbdepth tool).
    Low-level API, beware, and make sure you understand the implications!
  * Every fbink_reinit-like function is now marked warn_unused_result, as checking the return value may be critical.
  * New function: fbink_get_fb_info
    Allows one to return a copy of the *full* vInfo & fInfo structs.
    Low-level API, prefer fbink_get_state unless you really have no other choice!

ABI Changes:
  * Signature updates for:
    * fbink_get_last_rect
    * fbink_cls
  * The "is_pb_sunxi" field in FBInkState has been renamed to "is_sunxi", to accomodate the Kobo Elipsa.

Buildsystem Changes:
  * The fbdepth utility is now built as part of a dedicated target, via make fbdepth.
    You'll want to buil it from a pristine tree (make distclean),
    to prevent it from linking against a larger than necessary library.
  * Added two new modular build flags: DRAW & BITMAP
    This means that bare MINIMAL builds are now *really* bare: they don't feature *any* primitive drawing features.
    Unless you're doing very particular things, anything that previously relied on a bare MINIMAL build probably
    requires a MINIMAL + BITMAP build now.
  * Added a dist target to generate release tarballs.