1
0
Fork 0
forked from len0rd/rockbox
foxbox/firmware/target/hosted/sdl
William Wilgus 3237ae4a4f LCD core move buf ptr and address look up function viewport struct
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
2020-10-26 12:28:48 -04:00
..
app Rewrite filesystem code (WIP) 2014-08-30 03:48:23 +02:00
button-sdl.c SDL: If our eventloop fails, log the reason! 2020-08-24 21:21:33 -04:00
button-sdl.h Initial maemo platform support 2011-02-08 20:05:25 +00:00
buttonmap.h Rockbox as an application: Add an 320x240 SDL application target. 2010-07-06 15:11:56 +00:00
filesystem-sdl.c Rewrite filesystem code (WIP) 2014-08-30 03:48:23 +02:00
filesystem-sdl.h Rewrite filesystem code (WIP) 2014-08-30 03:48:23 +02:00
kernel-sdl.c Hopefully get shutdown/exit handling on SDL/maemo right. 2011-02-28 03:24:48 +00:00
key_to_touch-sdl.c fix button maps and assign some buttons for uisimulator. 2010-10-13 12:54:25 +00:00
lcd-bitmap.c Fix the fix 2019-02-08 00:52:37 +01:00
lcd-bitmap.h - Move uisimulator/sdl/*.[ch] into the target tree, under firmware/target/hosted/sdl, uisdl.c is split up across button-sdl.c and system-sdl.c. 2010-05-15 21:02:47 +00:00
lcd-remote-bitmap.c lcd drivers: Convert lcd_[remote_]framebuffer to a pointer 2012-02-28 11:44:59 +11:00
lcd-remote-bitmap.h - Move uisimulator/sdl/*.[ch] into the target tree, under firmware/target/hosted/sdl, uisdl.c is split up across button-sdl.c and system-sdl.c. 2010-05-15 21:02:47 +00:00
lcd-sdl.c LCD core move buf ptr and address look up function viewport struct 2020-10-26 12:28:48 -04:00
lcd-sdl.h Remove extraneous "extern int display_zoom" declarations. 2012-06-14 22:23:50 +02:00
load_code-sdl.c Rewrite filesystem code (WIP) 2014-08-30 03:48:23 +02:00
pcm-sdl.c hosted: Use O_CLOEXEC for all open() and "e" for fopen() calls 2020-10-11 01:47:03 -04:00
sim-ui-defines.h Add UI Simulator for Eros Q / K series 2020-10-21 13:24:01 +00:00
system-sdl.c [4/4] Remove HAVE_LCD_BITMAP, as it's now the only choice. 2020-07-24 21:20:13 +00:00
system-sdl.h sim/sdlapp: Do not quit immediately on panicf, but wait for quit. 2014-02-02 16:59:29 +01:00
system-sim.h Rewrite filesystem code (WIP) 2014-08-30 03:48:23 +02:00
system-target.h Don't duplicate byteswap code. Invent system where NEED_GENERIC_BYTESWAPS is set if the generic functions from system.h are needed. 2010-07-15 22:01:06 +00:00
thread-sdl.c Base scheduler queues off linked lists and do cleanup/consolidation 2014-08-16 05:15:37 -04:00
thread-sdl.h Implement cooperative threads on hosted platforms using C code. 2011-02-18 22:46:01 +00:00
timer-sdl.c Add svn:keywords to firmware/target/hosted source files 2011-03-05 15:31:52 +00:00