3237ae4a4f
I'm currently running up against the limitations of the lcd_draw functions I want these functions to be able to be used on any size buffer not just buffers with a stride matching the underlying device [DONE] allow the framebuffer to be decoupled from the device framebuffer [DONE need examples] allow for some simple blit like transformations [DONE] remove the device framebuffer from the plugin api [DONE}ditto remote framebuffer [DONE] remove _viewport_get_framebuffer you can call struct *vp = lcd_set_viewport(NULL) and vp->buffer->fb_ptr while remote lcds may compile (and work in the sim) its not been tested on targets [FIXED] backdrops need work to be screen agnostic [FIXED] screen statusbar is not being combined into the main viewport correctly yet [FIXED] screen elements are displayed incorrectly after switch to void* [FIXED] core didn't restore proper viewport on splash etc. [NEEDS TESTING] remote lcd garbled data [FIXED] osd lib garbled screen on bmp_part [FIXED] grey_set_vp needs to return old viewport like lcd_set_viewport [FIXED] Viewport update now handles viewports with differing buffers/strides by copying to the main buffer [FIXED] splash on top of WPS leaves old framebuffer data (doesn't redraw) [UPDATE] refined this a bit more to have clear_viewport set the clean bit and have skin_render do its own screen clear scrolling viewports no longer trigger wps refresh also fixed a bug where guisyncyesno was displaying and then disappearing [ADDED!] New LCD macros that allow you to create properly size frame buffers in you desired size without wasting bytes (LCD_ and LCD_REMOTE_) LCD_STRIDE(w, h) same as STRIDE_MAIN LCD_FBSTRIDE(w, h) returns target specific stride for a buffer W x H LCD_NBELEMS(w, h) returns the number of fb_data sized elemenst needed for a buffer W x H LCD_NATIVE_STRIDE(s) conversion between rockbox native vertical and lcd native stride (2bitH) test_viewports.c has an example of usage [FIXED!!] 2bit targets don't respect non-native strides [FIXED] Few define snags Change-Id: I0d04c3834e464eca84a5a715743a297a0cefd0af |
||
---|---|---|
.. | ||
dummy | ||
help | ||
src | ||
compress.c | ||
fonts.zip | ||
genhelp.sh | ||
help.h | ||
lz4tiny.c | ||
lz4tiny.h | ||
puzzles.make | ||
rbassert.h | ||
rbcompat.h | ||
rbmalloc.c | ||
rbwrappers.c | ||
README.rockbox | ||
rockbox.c | ||
SOURCES | ||
SOURCES.games |
Introduction ============ This is the readme for the Rockbox port of Simon Tatham's Portable Puzzle Collection. The upstream version used is subject to change, as it should be relatively trivial to update it to a newer version. Simply copying the upstream repo's contents into src/ and running genhelp.sh ought to do it (watch out for API changes, though!). Source structure ================ Most of the upstream files in src/ are essentially untouched, apart from some minor adjustments to make them compile and run happily on Rockbox. The majority of the rockbox-specific code is found in rockbox.c, with some minor stuff in rbwrappers.c and rbmalloc.c. NOTE: the build makefile (puzzles.make) automatically includes `rbcompat.h` when compiling! Check there when things break. Help feature ============ The Help feature is implemented by compiling each puzzle against a compressed version of each puzzle's section from the upstream documentation. These files are stored under help/, and are generated by genhelp.sh from the puzzles.but file in the source distribution. The compression is LZ4, implemented in lz4tiny.c (for decompression on target), and compress.c (for generation). genhelp.sh should be run whenever the documentation is changed. Kudos to Simon (duh), and Frank, for telling me about it. Franklin Wei (__builtin) Changelog ========= April 2017: Changes made to move upstream sources to a separate subdirectory, where they are completely unmodified from the original. Updating the upstream version is now as simple as copying a fresh set of sources to src/. Several hacks were used to accomplish this: a global include specified on the command line, and a directory of dummy header files. August 2017: Every game that can be played with only the cursor keys is now functional. October 2017: Added zoom feature. March 2018: Added help styling. Changed from simple_viewer to display_text for displaying help text. compress.c now does additional processing on the help text, and also requires a slightly modified halibut. April 2018: Finished up the rest of the games. All work now! Surely there's still bugs to fix, so stay tuned... December 2018: Resync to 3ece3d6. Happy holidays! May 2019: Resync to e2135d5. June 2020: Resync to 9aa7b7c. Fixed really embarrassing bug in loading saved games.