path: root/firmware/drivers/lcd-16bit-vert.c
AgeCommit message (Collapse)AuthorFilesLines
2020-10-31lcd_framebuffer bugfixes, sanity checksWilliam Wilgus1-0/+3
several issues I saw that could pontentially cause problems scroll engine doesn't take text height into account when checking bounds NBELEMS was one whole row too large hopefully I got them right this time Change-Id: If303da8320429c3964fc675351cb088d46303745
2020-10-26Whitespace cleanup on fb_viewport RewriteWilliam Wilgus1-23/+23
Change-Id: I24aac41c8abecf7b78a44d7f59e842b791be4563
2020-10-26LCD core move buf ptr and address look up function viewport structWilliam Wilgus1-46/+52
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
2014-06-21Fix some build errors and warnings.Thomas Martitz1-0/+10
Change-Id: I149c00fc6ba47d5134ad4f74c364bffd24079824
2012-03-20lcd_fillrect(): Unify 16bit implementations (move to 16bit-common.c)Thomas Martitz1-112/+0
Change-Id: I457ea9fcb67869fdac7f1201a059a362b087e908
2012-03-20Refactor lcd_clear_viewport().Thomas Martitz1-50/+0
* Unify 16bit implementaitons (move to 16bit-common.c). * Add viewport clipping (within #ifdef HAVE_VIEWPORT_CLIP) like other lcd_* functions have. Change-Id: I4e96b2efdb94d2f7bc5bcdb710554117989579ec
2012-02-28lcd drivers: Convert lcd_[remote_]framebuffer to a pointerJonathan Gordon1-9/+6
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
2011-12-03lcd-16bit: move lcd_bitmap and lcd_bitmap_transparent to common codeRafaël Carré1-16/+2
git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2011-12-03lcd-16bit: move common code to lcd-16bit-common.cRafaël Carré1-363/+5
git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2011-03-08Merge lcd_{alpha,mono}_bitmap_part() for both lcd-16bit. Add small loop ↵Thomas Martitz1-487/+5
optimizations too. git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2011-03-05Add viewport clipping to lcd_alpha_bitmap_part as lcd_mono_bitmap_part also has.Thomas Martitz1-3/+34
git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2011-03-05Add lcd_alpha_bitmap_part suitable for vertical stride 16bit lcd.Thomas Martitz1-0/+258
Possibly not the fastest solution but it will do. git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2010-08-12Move memset6() declaration to string-extra.h, kills a warning compiling for ↵Thomas Martitz1-2/+1
android since it ships a memory.h. git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2010-02-20Comment out lcd_drawline() DEBUGF messages which show in various simulatorsTomer Shalev1-2/+2
git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2009-11-07Add optional viewport clipping, can be enabled with HAVE_VIEWPORT_CLIP. A ↵Karl Kurbjun1-48/+235
simulator check is also added to set_viewport that will show an error/note when DEBUGF is enabled. git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2009-10-20Convert lcd_activation callbacks to use the event system to allow for ↵Thomas Martitz1-21/+0
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:// a1c6a512-1295-4272-9138-f99709370657
2009-09-04Fix STRIDE macro for multiscreen and add stride support for picture lib.Karl Kurbjun1-3/+3
git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2009-09-02Update Vertical stride so that it's oriented left to right in the destination.Karl Kurbjun1-25/+22
git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2009-09-01Initial vertical stride LCD driver. Backdrop is inverted with it currently.Karl Kurbjun1-0/+923
git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657