summaryrefslogtreecommitdiff
path: root/firmware/drivers/lcd-1bit-vert.c
AgeCommit message (Collapse)Author
2021-03-24Revert "lcd framebuffer - Bugfix ensure proper alignment"William Wilgus
This reverts commit ffee661ab70e9622a05c9c2f24ecf474dad8f042. Reason for revert: <INSERT REASONING HERE> iAudio M5 `IRAM' overflowed by 48 bytes Change-Id: Id808a72c6eacabc562d53eac8acd36b45f678a97
2021-03-24lcd framebuffer - Bugfix ensure proper alignmentWilliam Wilgus
-- apparenty 0x4 aligned doesn't work properly requires 0x8 alignment at least for the h10 20gb but enabled for all arm processors assign the default framebuffer to the default_vp as well Change-Id: I0b76c30f2ddb5d6d2f7c6a132e4081aee58da17b
2020-10-26Whitespace cleanup on fb_viewport RewriteWilliam Wilgus
Change-Id: I24aac41c8abecf7b78a44d7f59e842b791be4563
2020-10-26LCD core move buf ptr and address look up function viewport structWilliam Wilgus
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
2013-12-14scroll_engine: Rename scroll_stop* functions to be more consistent with the ↵Thomas Martitz
lcd api. Change-Id: I8ada10b96bfb628cca0331689e8b936ae47c7e1c
2013-12-14lcd-*: Merge common viewport operations into lcd-bitmap-common.cThomas Martitz
Change-Id: Ibec2d039ac0ba1214c9bd1b667bc8a9538a0d3d7
2012-02-28lcd drivers: Convert lcd_[remote_]framebuffer to a pointerJonathan Gordon
Change all lcd drivers to using a pointer to the static framebuffer instead of directly accessing the static array. This will let us later do fun things like dynamic framebuffer sizes (RaaA) or ability to use different buffers for different layers (dynamic skin backdrops!) Change-Id: I0a4d58a9d7b55e6c932131b929e5d4c9f9414b06
2010-05-18Rename sdl lcd initialization to (remote_)lcd_init_device which enables ↵Thomas Martitz
removing two #ifdef SIMULATOR and makes it happen as on target. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26137 a1c6a512-1295-4272-9138-f99709370657
2010-02-20Comment out lcd_drawline() DEBUGF messages which show in various simulatorsTomer Shalev
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24784 a1c6a512-1295-4272-9138-f99709370657
2009-11-07Fix two width calculationsKarl Kurbjun
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23552 a1c6a512-1295-4272-9138-f99709370657
2009-11-07Add optional viewport clipping, can be enabled with HAVE_VIEWPORT_CLIP. A ↵Karl Kurbjun
simulator check is also added to set_viewport that will show an error/note when DEBUGF is enabled. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23551 a1c6a512-1295-4272-9138-f99709370657
2009-10-20Convert lcd_activation callbacks to use the event system to allow for ↵Thomas Martitz
multiple parallel callbacks (for custom statusbar). Increase maximum event count as we need more (I actually had a report about it during custom statusbar testing). Removed corresponding functions from the core and plugin api. Bump min version and sort. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23302 a1c6a512-1295-4272-9138-f99709370657
2009-08-18LCD_DEPTH == 1 : specify if lcd framebuffer is in iram into the model ↵Rafaël Carré
specific config file git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22397 a1c6a512-1295-4272-9138-f99709370657
2009-08-13LCD bitmap driver code consolidation from FS#4817:Andrew Mahone
Move text-drawing code into firmware-drivers/lcd-bitmap-common.c, included by the various driver files. Add new static function LCDFN(putsxyofs_style) to draw styled text, and use it in both LCDFN(puts_style_offset) and LCDFN(scroll_fn). Merge lcd_gradient_rect functions, with new function containing simplified code for drawing one line of a multi-line gradient. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22289 a1c6a512-1295-4272-9138-f99709370657
2009-07-14FS#10080Nils Wallménius
* Move strncpy() from core to the pluginlib * Introduce strlcpy() and use that instead in most places (use memcpy in a few) in core and some plugins * Drop strncpy() from the codec api as no codec used it * Bump codec and plugin api versions git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21863 a1c6a512-1295-4272-9138-f99709370657
2009-06-07Convert a number of places in core and plugins to use the BIT_N() macro ↵Jens Arnold
instead of 1<<n. Speeds up things on SH1, and also reduces core binsize. Most notable speedups: 1 bit lcd driver: drawpixel +20%, drawline + 27%, hline +5%; jpeg viewer: +8% for 1/8 scaling. Other targets are unaffected. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21205 a1c6a512-1295-4272-9138-f99709370657
2009-03-17Fix reds and yellows (hopefully). Some targets apparently didn't properly ↵Thomas Martitz
#ifdef lcd_enable and lcd_sleep code out, so that it got partly active in the bootloader; rename the ui simulator stub fixes most reds; for the clip: move the hook code into lcd-1bit-vert.c which should fix the bootloader red. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20333 a1c6a512-1295-4272-9138-f99709370657
2009-03-04Cosmetic fix: remove duplicate semicolonsBertrik Sikken
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20198 a1c6a512-1295-4272-9138-f99709370657
2008-06-28Updated our source code header to explicitly mention that we are GPL v2 orDaniel Stenberg
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-23FS#9051 - remove LCD margins... use viewports if you need them...Jonathan Gordon
NOTE to WPS people.... %m has been removed, but (i think) because of the other %m tags it wont fail if you try loading a wps with %m|..|, it will just be ignored. Also note that if the statusbar is enabled the default viewport is 8 pixels shorter than when its not, i.e (0,0) is really (0,8) if the statusbar is shown... I dont think this will be a major issue because almost no WPS show the bar and use bitmaps... text only WPS shouldnt be affected. Please report problem screens in http://forums.rockbox.org/index.php?topic=17358.0 git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17763 a1c6a512-1295-4272-9138-f99709370657
2008-04-12LCD drivers: * Automatically optimise horizontal and vertical lines drawn ↵Jens Arnold
via _drawline(), with debug message to show possible optimisations in the caller. * Get rid of the extra ICODE function declarations by putting the attribute into the definition. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17081 a1c6a512-1295-4272-9138-f99709370657
2008-03-09Reuse the 1 bit vertical-packed LCD driver code for the remote LCD driver ↵Jens Arnold
with the same pixelformat instead of duplicating everything. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16593 a1c6a512-1295-4272-9138-f99709370657
2008-01-08Add the viewport functions to the screens API, including a new getfont() ↵Dave Chapman
function to return the font used by the current viewport. A change to the screens API makes the plugin API incompatible, so we bump version and sort. Also commit the test_viewports plugin (not built by default). This is some more of FS#8385. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16022 a1c6a512-1295-4272-9138-f99709370657
2008-01-07Add viewport capabilities to all the LCD drivers, and adapt scrolling code. ↵Dave Chapman
This is the firmware/ part of FS#8385 - the changes to the WPS code still need more work and will be committed at a later date. NOTE: There are no user-visible changes with this commit - just the infrastructure. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16018 a1c6a512-1295-4272-9138-f99709370657
2007-09-30Fix red due to previous commit, remove some ifdefs. (/me crosses his fingers)Antoine Cellerier
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14929 a1c6a512-1295-4272-9138-f99709370657
2007-07-28Fix warnings and errors. Remove some added stuff that wasn't needed afterall.Michael Sevakis
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14036 a1c6a512-1295-4272-9138-f99709370657
2007-07-28Scroll on main and remote with a single thread. Change the way system ↵Michael Sevakis
messages are defined before running out is an issue (which requires a full update of rockbox on the player). git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14035 a1c6a512-1295-4272-9138-f99709370657
2007-04-11Moved SH1 system code to target tree. * First shot at hwcompat cleanup.Jens Arnold
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13114 a1c6a512-1295-4272-9138-f99709370657
2007-04-01for WPS files with many lines the current wps code will call puts_scroll ↵Robert Kukla
with y-values greater than the size of the scroll[] array (e.g. gwps-common.c:2063). This is a temporary security measure until viewports and/or wps tokenizer are available... git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12992 a1c6a512-1295-4272-9138-f99709370657
2007-03-04Dual core support for PP502x players (iPod G4 and later, iriver h10, Sansa - ↵Daniel Ankers
iPod G3 will be coming soon.) This allows threads to be run on either core provided that all communications between the cores is done using uncached memory. There should be no significant change in battery life from doing this. Documentation (on the RockboxKernel wiki page) will follow shortly. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12601 a1c6a512-1295-4272-9138-f99709370657
2007-02-20Introduced LCD_FBHEIGHT in addition to the already existing LCD_FBWIDTH to ↵Jens Arnold
ease framebuffer handling a bit. Added equivalent definitions for the remote LCD. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12419 a1c6a512-1295-4272-9138-f99709370657
2007-01-09Removed executable flagLinus Nielsen Feltzing
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11967 a1c6a512-1295-4272-9138-f99709370657
2006-11-12Split 1 bit LCD code and move appropriate parts to target tree. Only archos ↵Jens Arnold
code is tested. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11517 a1c6a512-1295-4272-9138-f99709370657