Commit graph

18 commits

Author SHA1 Message Date
Aidan MacDonald
f373c97c90 Define LCD_STRIDEFORMAT unconditionally
Instead of putting "#ifdef LCD_STRIDEFORMAT" at every usage of the
macro it's simpler to have config.h define LCD_STRIDEFORMAT to the
default of horizontal stride when the target leaves it unspecified.

Change-Id: Ib187012aad65ac678dbd837b1464a83bad722411
2022-09-30 10:42:49 +01:00
William Wilgus
40e98a2e49 Whitespace cleanup on fb_viewport Rewrite
Change-Id: I24aac41c8abecf7b78a44d7f59e842b791be4563
2020-10-26 12:38:22 -04:00
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
Moshe Piekarski
12f3ed1699 make the plugin API frambuffer agnostic
Change-Id: I5abdc231093054c517ff53b9a456997e440e3f6e
2020-10-26 12:28:48 -04:00
Solomon Peachy
092c340a20 [1/4] Remove SH support and all archos targets
This removes all code specific to SH targets

Change-Id: I7980523785d2596e65c06430f4638eec74a06061
2020-07-24 21:20:13 +00:00
Thomas Jarosch
9dcde3571c Also fix uninitialized variables in xlcd_scroll_up()/xlcd_scroll_down()
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30354 a1c6a512-1295-4272-9138-f99709370657
2011-08-25 20:47:44 +00:00
Thomas Jarosch
bc6dd127e3 Fix use of uninitialized memory in xlcd_scroll_left() / xlcd_scroll_right() in special cases
Only valid for:
LCD_PIXELFORMAT == HORIZONTAL_PACKING && LCD_DEPTH != 2

Found by "cppcheck".

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30348 a1c6a512-1295-4272-9138-f99709370657
2011-08-25 19:34:15 +00:00
Rafaël Carré
5615881955 Remove a bunch of build conditions inside .c files
Fix logic in pacbox makefiles for asm optimizations

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27887 a1c6a512-1295-4272-9138-f99709370657
2010-08-25 19:14:02 +00:00
Jens Arnold
728f698fa1 XLCD lib: * Fix bug (improper fill) in pixel-wise left scrolling on 2bpp horizontally packed LCDs. * Faster pixel-wise upward scrolling on 2bpp vertically packed LCD coldfire targets.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23704 a1c6a512-1295-4272-9138-f99709370657
2009-11-22 14:48:50 +00:00
Torne Wuff
27ece8c366 Pluginlib: make scroll functions clear screen if scrolled by >= screen size (from FS#10330)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23211 a1c6a512-1295-4272-9138-f99709370657
2009-10-16 20:15:12 +00:00
Karl Kurbjun
573d3f2845 LCD scrolling routines: Fix the screen scrolling boundary with Vertical Strides.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23005 a1c6a512-1295-4272-9138-f99709370657
2009-10-08 03:56:37 +00:00
Karl Kurbjun
2544b001b8 Add Vertical stride support to LCD scrolling functions.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22683 a1c6a512-1295-4272-9138-f99709370657
2009-09-12 16:42:11 +00:00
Andrew Mahone
23d9812273 loader-initialized global plugin API:
struct plugin_api *rb is declared in PLUGIN_HEADER, and pointed to by
__header.api

the loader uses this pointer to initialize rb before calling entry_point

entry_point is no longer passed a pointer to the plugin API

all plugins, and pluginlib functions, are modified to refer to the
global rb

pluginlib functions which only served to copy the API pointer are
removed

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19776 a1c6a512-1295-4272-9138-f99709370657
2009-01-16 10:34:40 +00:00
Daniel Stenberg
2acc0ac542 Updated our source code header to explicitly mention that we are GPL v2 or
later. We still need to hunt down snippets used that are not. 1324 modified
files...
http://www.rockbox.org/mail/archive/rockbox-dev-archive-2008-06/0060.shtml


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17847 a1c6a512-1295-4272-9138-f99709370657
2008-06-28 18:10:04 +00:00
Jens Arnold
e03ef1ec23 LCd extension lib: Implement proper scrolling for 2 bit vertical interleaved LCD. Stops oscilloscope from crashing on M3. * A few small simplifications.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16754 a1c6a512-1295-4272-9138-f99709370657
2008-03-23 00:28:16 +00:00
Linus Nielsen Feltzing
cf8251281c Removed executable flag
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11966 a1c6a512-1295-4272-9138-f99709370657
2007-01-09 23:22:14 +00:00
Jens Arnold
5ad51c61bc Greyscale ipods: Fix horizontal scrolling in oscilloscope, the flipped LCD driver broke it.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9537 a1c6a512-1295-4272-9138-f99709370657
2006-04-06 20:31:57 +00:00
Jens Arnold
19b45a4374 LCD extension library: Implemented scrolling for LCD depths below 8 bit. * Oscilloscope: Use new scrolling function, some minor optimisations.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8951 a1c6a512-1295-4272-9138-f99709370657
2006-03-08 01:14:46 +00:00