rockbox/apps/plugins
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
..
beatbox [1/4] Remove SH support and all archos targets 2020-07-24 21:20:13 +00:00
bitmaps [4/4] Remove HAVE_LCD_BITMAP, as it's now the only choice. 2020-07-24 21:20:13 +00:00
chessbox New port: AIGO EROS Q / EROS K 2020-10-11 16:37:17 -04:00
clock Make fixepoint.c as a shared library (libfixedpoint.a). 2013-04-26 00:11:04 +02:00
doom LCD core move buf ptr and address look up function viewport struct 2020-10-26 12:28:48 -04:00
fft Convert FFT plugin to using PLA keymapings 2020-10-23 09:41:21 -04:00
fractals New port: AIGO EROS Q / EROS K 2020-10-11 16:37:17 -04:00
frotz keyboard add ability to specify temporary custom layouts 2020-07-22 06:48:28 -04:00
goban New port: AIGO EROS Q / EROS K 2020-10-11 16:37:17 -04:00
imageviewer LCD core move buf ptr and address look up function viewport struct 2020-10-26 12:28:48 -04:00
lib LCD core move buf ptr and address look up function viewport struct 2020-10-26 12:28:48 -04:00
lua LCD core move buf ptr and address look up function viewport struct 2020-10-26 12:28:48 -04:00
lua_scripts lua add better memory stats 2020-10-05 11:53:27 -04:00
midi New port: AIGO EROS Q / EROS K 2020-10-11 16:37:17 -04:00
mikmod Add 192 and 176KHz to mikmod and test_sampr plugins 2020-09-30 22:52:56 -04:00
mpegplayer LCD core move buf ptr and address look up function viewport struct 2020-10-26 12:28:48 -04:00
pacbox LCD core move buf ptr and address look up function viewport struct 2020-10-26 12:28:48 -04:00
pdbox Silence warnings that happen on newer GCCs 2020-10-13 20:09:14 -04:00
pictureflow LCD core move buf ptr and address look up function viewport struct 2020-10-26 12:28:48 -04:00
puzzles LCD core move buf ptr and address look up function viewport struct 2020-10-26 12:28:48 -04:00
reversi New port: AIGO EROS Q / EROS K 2020-10-11 16:37:17 -04:00
rockboy LCD core move buf ptr and address look up function viewport struct 2020-10-26 12:28:48 -04:00
sdl LCD core move buf ptr and address look up function viewport struct 2020-10-26 12:28:48 -04:00
searchengine [4/4] Remove HAVE_LCD_BITMAP, as it's now the only choice. 2020-07-24 21:20:13 +00:00
shortcuts Add open_plugin to core 2020-08-17 10:15:14 -04:00
sudoku New port: AIGO EROS Q / EROS K 2020-10-11 16:37:17 -04:00
text_viewer New port: AIGO EROS Q / EROS K 2020-10-11 16:37:17 -04:00
xworld LCD core move buf ptr and address look up function viewport struct 2020-10-26 12:28:48 -04:00
zxbox LCD core move buf ptr and address look up function viewport struct 2020-10-26 12:28:48 -04:00
2048.c plugins: More HAVE_BACKLIGHT cleanup 2020-07-24 19:20:15 -04:00
BUILD_OVERLAY Rockbox as an application: Replace many occurences of #ifdef SIMULATOR with #if (CONFIG_PLATFORM & PLATFORM_HOSTED) (or equivalently). 2010-06-21 16:53:00 +00:00
CATEGORIES WIP open_plugins.rock viewer 2020-08-17 22:17:15 -04:00
SOURCES h300: enable support for iriver_flash 2020-10-26 01:07:14 +00:00
SOURCES.app_build [4/4] Remove HAVE_LCD_BITMAP, as it's now the only choice. 2020-07-24 21:20:13 +00:00
SUBDIRS [4/4] Remove HAVE_LCD_BITMAP, as it's now the only choice. 2020-07-24 21:20:13 +00:00
SUBDIRS.app_build [4/4] Remove HAVE_LCD_BITMAP, as it's now the only choice. 2020-07-24 21:20:13 +00:00
alarmclock.c Implement time-based resume and playback start. 2014-03-10 04:12:30 +01:00
announce_status.c Fix DEBUG builds 2020-10-06 15:27:56 -05:00
battery_bench.c hosted: sanitize handling of HOME_DIR 2020-10-11 17:47:34 -04:00
bench_mem_jpeg.c plugins: use lcd_putsf/lcd_putsxyf 2010-08-28 21:46:45 +00:00
bench_scaler.c plugins: use lcd_putsf/lcd_putsxyf 2010-08-28 21:46:45 +00:00
blackjack.c New port: AIGO EROS Q / EROS K 2020-10-11 16:37:17 -04:00
boomshine.lua lua boomshine update to use rockevents library 2020-06-25 13:50:57 +00:00
bounce.c Replace SAMSUNG_YH920_PAD with YH92X 2016-01-25 09:23:09 +01:00
brickmania.c New port: AIGO EROS Q / EROS K 2020-10-11 16:37:17 -04:00
bubbles.c [1/4] Remove SH support and all archos targets 2020-07-24 21:20:13 +00:00
calculator.c New port: AIGO EROS Q / EROS K 2020-10-11 16:37:17 -04:00
calendar.c New port: AIGO EROS Q / EROS K 2020-10-11 16:37:17 -04:00
chessbox.c Second try: Introduce plugin_crt0.c that every plugin links. 2010-08-24 14:30:46 +00:00
chessclock.c New port: AIGO EROS Q / EROS K 2020-10-11 16:37:17 -04:00
chip8.c New port: AIGO EROS Q / EROS K 2020-10-11 16:37:17 -04:00
chopper.c New port: AIGO EROS Q / EROS K 2020-10-11 16:37:17 -04:00
clix.c New port: AIGO EROS Q / EROS K 2020-10-11 16:37:17 -04:00
codebuster.c do_menu pass internal synclist reference to callback 2020-07-19 22:10:26 +00:00
credits.c plugins: Fix the builds for targets lacking HAVE_BACKLIGHT 2020-07-24 18:17:19 -04:00
credits.pl
crypt_firmware.c Second try: Introduce plugin_crt0.c that every plugin links. 2010-08-24 14:30:46 +00:00
cube.c New port: AIGO EROS Q / EROS K 2020-10-11 16:37:17 -04:00
demystify.c plugins: More HAVE_BACKLIGHT cleanup 2020-07-24 19:20:15 -04:00
dice.c FS#7704 - Talk support for plugins 2019-07-20 08:48:35 +02:00
dict.c keyboard add ability to specify temporary custom layouts 2020-07-22 06:48:28 -04:00
disktidy.c [4/4] Remove HAVE_LCD_BITMAP, as it's now the only choice. 2020-07-24 21:20:13 +00:00
disktidy.config Revert r31239 and r31250. Selecting ALL in disktidy used to be generally safe for most people, and these changes change that, making it easy to delete most or all of a user's music. This is a *very* bad idea. 2011-12-26 00:03:28 +00:00
duke3d.c Port of Duke Nukem 3D 2017-12-23 21:01:26 -05:00
elfdep.pl
fire.c LCD core move buf ptr and address look up function viewport struct 2020-10-26 12:28:48 -04:00
fireworks.c plugins: More HAVE_BACKLIGHT cleanup 2020-07-24 19:20:15 -04:00
flipit.c New port: AIGO EROS Q / EROS K 2020-10-11 16:37:17 -04:00
goban.c Fix yellows/reds. Red where caused by preprocessor condition mismatch. 2010-08-24 15:01:33 +00:00
greyscale.c [4/4] Remove HAVE_LCD_BITMAP, as it's now the only choice. 2020-07-24 21:20:13 +00:00
helloworld.c Update comments in the helloword plugin. 2010-08-30 20:58:38 +00:00
helloworld.lua
invadrox.c LCD core move buf ptr and address look up function viewport struct 2020-10-26 12:28:48 -04:00
iriver_flash.c iriver_flash: correctly calculate when to stop erasing the bootloader 2020-10-26 02:29:01 +00:00
iriverify.c Changed the FOR_NB_SCREENS macro to always be a for loop that declares its own loop variable. This removes the need to declare this variable in the outer scope. 2011-10-15 19:35:02 +00:00
jackpot.c [4/4] Remove HAVE_LCD_BITMAP, as it's now the only choice. 2020-07-24 21:20:13 +00:00
jewels.c New port: AIGO EROS Q / EROS K 2020-10-11 16:37:17 -04:00
keybox.c keyboard add ability to specify temporary custom layouts 2020-07-22 06:48:28 -04:00
lamp.c Lamp plugin: Allow toggling the button light using "select". 2015-02-22 12:22:40 +01:00
logo.c [4/4] Remove HAVE_LCD_BITMAP, as it's now the only choice. 2020-07-24 21:20:13 +00:00
lrcplayer.c plugins: More HAVE_BACKLIGHT cleanup 2020-07-24 19:20:15 -04:00
lua_scripts.lua lua add demo scripts, atexit handler, gui_scrollbar_draw 2019-07-29 02:51:29 -05:00
main_menu_config.c Speech enabled main menu config plugin 2019-08-05 02:33:37 +02:00
matrix.c matrix plugin: Fix out-of-bounds array access. Unify for-loop style. 2012-06-03 23:37:33 +02:00
maze.c plugins: More HAVE_BACKLIGHT cleanup 2020-07-24 19:20:15 -04:00
mazezam.c plugins: More HAVE_BACKLIGHT cleanup 2020-07-24 19:20:15 -04:00
md5sum.c md5sum: clean up whitespace 2020-07-26 15:41:54 -04:00
metronome.c [4/4] Remove HAVE_LCD_BITMAP, as it's now the only choice. 2020-07-24 21:20:13 +00:00
minesweeper.c New port: AIGO EROS Q / EROS K 2020-10-11 16:37:17 -04:00
mosaique.c [4/4] Remove HAVE_LCD_BITMAP, as it's now the only choice. 2020-07-24 21:20:13 +00:00
mp3_encoder.c New port: AIGO EROS Q / EROS K 2020-10-11 16:37:17 -04:00
open_plugins.c Open_plugin add ability to import opx shortcuts, bug fix 2020-08-19 02:06:16 -04:00
oscilloscope.c LCD core move buf ptr and address look up function viewport struct 2020-10-26 12:28:48 -04:00
otp.c [4/4] Remove HAVE_LCD_BITMAP, as it's now the only choice. 2020-07-24 21:20:13 +00:00
pegbox.c Fix red introduced from keymap typos 2020-10-11 17:20:38 -04:00
periodic_table.c Add tentative new element names, IUPAC approval expected around November 2016-12-04 18:05:51 +01:00
pictureflow.c Second try: Introduce plugin_crt0.c that every plugin links. 2010-08-24 14:30:46 +00:00
pitch_detector.c Revise the PCM callback system after adding multichannel audio. 2012-03-03 07:23:38 +01:00
pixel-painter.lua Lua fix pixel-painter score save 2018-11-05 07:18:08 +01:00
plasma.c LCD core move buf ptr and address look up function viewport struct 2020-10-26 12:28:48 -04:00
plugin.lds [1/4] Remove SH support and all archos targets 2020-07-24 21:20:13 +00:00
plugin_crt0.c Commit to certain names for cache coherency APIs and discard the aliases. 2011-12-17 07:27:24 +00:00
plugins.make WIP open_plugins.rock viewer 2020-08-17 22:17:15 -04:00
pong.c New port: AIGO EROS Q / EROS K 2020-10-11 16:37:17 -04:00
properties.c [4/4] Remove HAVE_LCD_BITMAP, as it's now the only choice. 2020-07-24 21:20:13 +00:00
quake.c sdl: Fix path substitution in log messages, fix game names in comments 2019-08-22 22:00:43 +03:00
random_folder_advance_config.c plugins: Fix the builds for targets lacking HAVE_BACKLIGHT 2020-07-24 18:17:19 -04:00
remote_control.c Second try: Introduce plugin_crt0.c that every plugin links. 2010-08-24 14:30:46 +00:00
resistor.c plugins: More HAVE_BACKLIGHT cleanup 2020-07-24 19:20:15 -04:00
robotfindskitten.c robotfindskitten: clear message line before cinema scene 2019-07-28 01:30:29 +02:00
rockblox.c New port: AIGO EROS Q / EROS K 2020-10-11 16:37:17 -04:00
rockblox1d.c rockblox1d's plugin PLA integration (main code + manual) 2012-02-18 23:57:22 +01:00
rockbox-fonts.config
rockboy.c Second try: Introduce plugin_crt0.c that every plugin links. 2010-08-24 14:30:46 +00:00
rocklife.c plugins: More HAVE_BACKLIGHT cleanup 2020-07-24 19:20:15 -04:00
rockpaint.c New port: FiiO M3K 2020-10-09 12:41:18 -04:00
search.c [4/4] Remove HAVE_LCD_BITMAP, as it's now the only choice. 2020-07-24 21:20:13 +00:00
settings_dumper.c EQ settings: Rework the settings to clean up the config file. 2013-02-09 13:05:32 +01:00
shopper.c Shopper: slightly improve plugin and manual 2015-09-24 23:15:24 +02:00
sliding_puzzle.c New port: AIGO EROS Q / EROS K 2020-10-11 16:37:17 -04:00
snake.c New port: AIGO EROS Q / EROS K 2020-10-11 16:37:17 -04:00
snake2.c New port: AIGO EROS Q / EROS K 2020-10-11 16:37:17 -04:00
snake2.levels
snow.c [4/4] Remove HAVE_LCD_BITMAP, as it's now the only choice. 2020-07-24 21:20:13 +00:00
sokoban.c New port: AIGO EROS Q / EROS K 2020-10-11 16:37:17 -04:00
sokoban.levels
solitaire.c New port: AIGO EROS Q / EROS K 2020-10-11 16:37:17 -04:00
sort.c plugins: make local functions static for a subset of plugins 2011-09-17 17:20:27 +00:00
spacerocks.c New port: AIGO EROS Q / EROS K 2020-10-11 16:37:17 -04:00
speedread.c plugins: More HAVE_BACKLIGHT cleanup 2020-07-24 19:20:15 -04:00
star.c New port: AIGO EROS Q / EROS K 2020-10-11 16:37:17 -04:00
starfield.c plugins: More HAVE_BACKLIGHT cleanup 2020-07-24 19:20:15 -04:00
stats.c plugins: More HAVE_BACKLIGHT cleanup 2020-07-24 19:20:15 -04:00
stopwatch.c New port: AIGO EROS Q / EROS K 2020-10-11 16:37:17 -04:00
stopwatch.lua stopwatch.lua: Improve button layout. Enable on touchscreen RaaA. 2012-01-29 22:35:49 +01:00
superdom.c keyboard add ability to specify temporary custom layouts 2020-07-22 06:48:28 -04:00
test_boost.c Fix two variable-set-but-not-used warnings 2020-07-24 23:26:15 -04:00
test_codec.c plugins: HAVE_BACKLIGHT in the test plugins 2020-07-24 19:42:32 -04:00
test_core_jpeg.c Second try: Introduce plugin_crt0.c that every plugin links. 2010-08-24 14:30:46 +00:00
test_disk.c plugins: HAVE_BACKLIGHT in the test plugins 2020-07-24 19:42:32 -04:00
test_fps.c plugins: HAVE_BACKLIGHT in the test plugins 2020-07-24 19:42:32 -04:00
test_gfx.c plugins: HAVE_BACKLIGHT in the test plugins 2020-07-24 19:42:32 -04:00
test_grey.c plugins: HAVE_BACKLIGHT in the test plugins 2020-07-24 19:42:32 -04:00
test_greylib_bitmap_scale.c test_X plugins PLA integration 2012-03-03 19:55:51 +01:00
test_mem.c [4/4] Remove HAVE_LCD_BITMAP, as it's now the only choice. 2020-07-24 21:20:13 +00:00
test_mem_jpeg.c Second try: Introduce plugin_crt0.c that every plugin links. 2010-08-24 14:30:46 +00:00
test_resize.c LCD core move buf ptr and address look up function viewport struct 2020-10-26 12:28:48 -04:00
test_sampr.c Add 192 and 176KHz to mikmod and test_sampr plugins 2020-09-30 22:52:56 -04:00
test_scanrate.c [1/4] Remove SH support and all archos targets 2020-07-24 21:20:13 +00:00
test_touchscreen.c Zen XFi2: Enable Plugins 2018-04-03 11:34:01 +02:00
test_viewports.c LCD core move buf ptr and address look up function viewport struct 2020-10-26 12:28:48 -04:00
test_viewports.lua
text_editor.c keyboard add ability to specify temporary custom layouts 2020-07-22 06:48:28 -04:00
theme_remove.c [4/4] Remove HAVE_LCD_BITMAP, as it's now the only choice. 2020-07-24 21:20:13 +00:00
vbrfix.c Improvements for vbrfix plugin: 2019-08-13 17:07:07 +02:00
viewers.config WIP open_plugins.rock viewer 2020-08-17 22:17:15 -04:00
vu_meter.c New port: AIGO EROS Q / EROS K 2020-10-11 16:37:17 -04:00
wav2wv.c [4/4] Remove HAVE_LCD_BITMAP, as it's now the only choice. 2020-07-24 21:20:13 +00:00
wavview.c plugins: make local functions static for metronome, rockblox1d, wavview 2011-10-04 19:33:52 +00:00
windows_lnk.c plugin windows_lnk: fix missing return-on-error 2020-07-07 02:36:33 +00:00
wolf3d.c sdl: Fix path substitution in log messages, fix game names in comments 2019-08-22 22:00:43 +03:00
wormlet.c New port: AIGO EROS Q / EROS K 2020-10-11 16:37:17 -04:00
xobox.c Fix red introduced from keymap typos 2020-10-11 17:20:38 -04:00
zxbox.c Second try: Introduce plugin_crt0.c that every plugin links. 2010-08-24 14:30:46 +00:00