Commit graph

75 commits

Author SHA1 Message Date
Andrew Mahone
3651a903f3 Add missing PictureFlow overlay source, fix properties on new files.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20865 a1c6a512-1295-4272-9138-f99709370657
2009-05-07 01:40:25 +00:00
Andrew Mahone
5621fd393a Build pictureflow using overlay on lowmem targets, support JPEG AA in PF on all targets.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20864 a1c6a512-1295-4272-9138-f99709370657
2009-05-07 01:23:13 +00:00
Andrew Mahone
eef7945a97 Move YUV->RGB in JPEG load from before scaler to after scaler. Required change to struct custom_format, so sorted the plugin API as well.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20856 a1c6a512-1295-4272-9138-f99709370657
2009-05-06 04:53:56 +00:00
Andrew Mahone
20f76d61ae Make JPEG and BMP scaler optional with HAVE_JPEG and HAVE_BMP_SCALING, both defined for all targets that have HAVE_ALBUMART. Disable JPEG in PictureFlow and pluginlib album art search with 32KiB plugin buffer until PictureFlow
gets overlay support.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20851 a1c6a512-1295-4272-9138-f99709370657
2009-05-04 15:46:41 +00:00
Andrew Mahone
a8912a0c41 PictureFlow JPEG AA support for all non-mono targets (mono targets will need overlay for this).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20841 a1c6a512-1295-4272-9138-f99709370657
2009-05-02 04:06:49 +00:00
Andrew Mahone
3e2cf9a380 Undo revert of r20653
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20657 a1c6a512-1295-4272-9138-f99709370657
2009-04-08 10:38:55 +00:00
Andrew Mahone
54a0aeff5b fix accidental reverts in r20651
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20656 a1c6a512-1295-4272-9138-f99709370657
2009-04-08 10:27:38 +00:00
Andrew Mahone
05875e4ce1 Fix yellow
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20653 a1c6a512-1295-4272-9138-f99709370657
2009-04-08 04:06:26 +00:00
Andrew Mahone
c79fb9ce06 FS#9992: remove PLA use from PictureFlow, replacing it with maps designed for each target, and inheriting the targets' standard actions
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20651 a1c6a512-1295-4272-9138-f99709370657
2009-04-08 03:50:44 +00:00
Jens Arnold
1d8679e7ec Pictureflow optimisations: (1) No need to restore the drawmode, the core takes care of that. (2) Making the angle positive before masking is redundant. (3) Slide rendering: * Precalculate a faded reflection table for alpha < 256, saving a multiply in the inner loop. * Group the inner loops so that less variables are precalculated, helping to keep stuff in registers. * Combine loop conditions so that a single check is sufficient.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20456 a1c6a512-1295-4272-9138-f99709370657
2009-03-22 14:45:14 +00:00
Jens Arnold
de910d862c Greyscale targets: Make the gradient a bit brighter and simplify the calculation.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20253 a1c6a512-1295-4272-9138-f99709370657
2009-03-09 01:14:21 +00:00
Jens Arnold
87a22b2930 Revert the static'ing, as it causes crashes/freezes. Needs investigation.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20229 a1c6a512-1295-4272-9138-f99709370657
2009-03-07 13:22:28 +00:00
Jens Arnold
c99446dd89 Made all local functions static, saving ~500 bytes of binsize on coldfire and SH1, and ~150 bytes on ARM. * Removed an unused static inline function.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20228 a1c6a512-1295-4272-9138-f99709370657
2009-03-07 13:00:09 +00:00
Jens Arnold
9a6d91940c Mono targets: Make sure the splash screen uses white on black and the logo doesn't look inverted.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20224 a1c6a512-1295-4272-9138-f99709370657
2009-03-07 01:22:49 +00:00
Jens Arnold
5e313256b2 Performance tweaks for SH1. No changes for coldfire and ARM, apart from changing a bunch of signed shifts to unsigned shifts.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20223 a1c6a512-1295-4272-9138-f99709370657
2009-03-07 00:16:27 +00:00
Andrew Mahone
6f030a01c9 add the needed plugin API exports for pictureflow to hwcodec, use the audio buffer if plugin buffer is too small, build on any target with bitmap + tagcache
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20213 a1c6a512-1295-4272-9138-f99709370657
2009-03-06 01:08:02 +00:00
Andrew Mahone
cc5689c153 pictureflow: use correct priority to free slides when extending cache on right, catch and handle failure to find a slide to free
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20212 a1c6a512-1295-4272-9138-f99709370657
2009-03-06 00:38:50 +00:00
Andrew Mahone
d8b6a950c6 FS#9919 pictureflow cache rework, footprint reduction, buflib use
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20203 a1c6a512-1295-4272-9138-f99709370657
2009-03-04 21:23:49 +00:00
Frank Gevaerts
281227321e Spelling fixes (UK English) by Alex Parker
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20009 a1c6a512-1295-4272-9138-f99709370657
2009-02-15 12:56:25 +00:00
Andrew Mahone
0222d0a5eb align frontmost edge of slides with plane of display
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19948 a1c6a512-1295-4272-9138-f99709370657
2009-02-08 22:17:21 +00:00
Andrew Mahone
c02e469bbb simplify zo calculation a bit, "zoom" the center margin value and add term for zo to offset calculation, so that margins are still correct when zooming
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19947 a1c6a512-1295-4272-9138-f99709370657
2009-02-08 22:17:15 +00:00
Andrew Mahone
eda5ed0624 rewrite of pictureflow renderer with 3D projection, this will allow many possible tweaks in the future, such as moving only the center slide "closer", changing the angle of side slides, etc, while
keeping the same meaning for the center margin and spacing settings

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19942 a1c6a512-1295-4272-9138-f99709370657
2009-02-07 22:18:26 +00:00
Andrew Mahone
79c25649b7 use a table-free clz on coldfire, where it benchmarks a bit faster
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19933 a1c6a512-1295-4272-9138-f99709370657
2009-02-06 05:43:00 +00:00
Andrew Mahone
ba4be51571 per Jens Arnold's suggestion:
use platform clz instruction only on ARMv5+, where we know it returns 32 for a 0 input, and remove the special case for 0

use binary search only to find most significant four bits, then use lookup table to add number of leading zeroes within those bits

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19888 a1c6a512-1295-4272-9138-f99709370657
2009-01-30 10:52:30 +00:00
Andrew Mahone
b081a38131 correct clz in pictureflow.c
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19887 a1c6a512-1295-4272-9138-f99709370657
2009-01-30 07:22:59 +00:00
Andrew Mahone
78409ff50c remove 64-bit math from fdiv in pictureflow.c, replacing it with limited pre-shifting of input values
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19886 a1c6a512-1295-4272-9138-f99709370657
2009-01-30 03:40:16 +00:00
Andrew Mahone
8f1d8be7a7 pictureflow tweaks:
allow wider covers on landscape, bringing square covers closer to suggested size from pre-scaling pictureflow

tweak defaults for center margin and cover spacing a little bit

change default title display to bottom if LCD_HEIGHT <= 100

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19877 a1c6a512-1295-4272-9138-f99709370657
2009-01-29 03:30:41 +00:00
Andrew Mahone
83350f2fed fix divide-by-zero error in pictureflow when selecting album
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19876 a1c6a512-1295-4272-9138-f99709370657
2009-01-29 03:30:33 +00:00
Andrew Mahone
499426caf9 remove MEM_FUNCTION_WRAPPERS, and private mem* implementations from plugins, and replace with pluginlib implementations in plugins/lib/gcc-support.c
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19847 a1c6a512-1295-4272-9138-f99709370657
2009-01-24 22:57:57 +00:00
Andrew Mahone
d08d015766 fix red on mono hardware - add mem function wrappers to pictureflow
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19839 a1c6a512-1295-4272-9138-f99709370657
2009-01-24 09:53:12 +00:00
Andrew Mahone
6fc558b2db plugins/lib/feature_wrappers.h to provide easy access to some feature that may be in either API or pluginlib depending on target
pictureflow modified to use feature wrappers, and built on all targets that have tagcache and are swcodec


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19837 a1c6a512-1295-4272-9138-f99709370657
2009-01-24 09:29:22 +00:00
Andrew Mahone
3f7d137725 fix for targets using greylib in pictureflow, they need to set drawmode for both normal and greylib drawing, so using MYLCD for that was inappropriate
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19836 a1c6a512-1295-4272-9138-f99709370657
2009-01-24 08:15:37 +00:00
Andrew Mahone
5d3fd5d5ce replace DIV255 with an inline function, the macro version caused unneeded recalculations
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19809 a1c6a512-1295-4272-9138-f99709370657
2009-01-21 05:10:16 +00:00
Andrew Mahone
8e9e6635a1 fix red on grayscale in pictureflow
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19803 a1c6a512-1295-4272-9138-f99709370657
2009-01-20 17:56:59 +00:00
Andrew Mahone
1b13299769 scaler optimizations:
on sh, use 8.24 fixed-point C math for final division in scaler

on coldfire, use 8.32 fixed-point via emac

on other architectures, use 8.32 fixed-point C math

use shift-and-add to divide when adjusting scale factors in pictureflow

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19802 a1c6a512-1295-4272-9138-f99709370657
2009-01-20 17:24:49 +00:00
Andrew Mahone
5ad02f701b use multiply-shift to scale reciprocals for rgb16 output, instead of
multiply-divide

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19788 a1c6a512-1295-4272-9138-f99709370657
2009-01-18 02:45:22 +00:00
Andrew Mahone
0b41f0599f unify pointers to value for configfile, and add TYPE_BOOL type, used by
pictureflow

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19786 a1c6a512-1295-4272-9138-f99709370657
2009-01-17 22:53:12 +00:00
Andrew Mahone
2fecb713ea fix pictureflow, previous fix caused cache to never be marked as good
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19785 a1c6a512-1295-4272-9138-f99709370657
2009-01-17 20:53:35 +00:00
Andrew Mahone
44ab8a63ea fix yellow, but in the long run, configfile needs a TYPE_BOOL as a clean fix to this
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19783 a1c6a512-1295-4272-9138-f99709370657
2009-01-17 10:58:21 +00:00
Andrew Mahone
6b32a2d9cd return to transposed images in cache, via new output plugins, to save
multiplies in render_slide

fix empty slide regen on cache version change

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19782 a1c6a512-1295-4272-9138-f99709370657
2009-01-17 09:42:26 +00:00
Andrew Mahone
4541ae9b5c remove unused fh from create_albumart_cache
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19781 a1c6a512-1295-4272-9138-f99709370657
2009-01-17 07:25:49 +00:00
Andrew Mahone
313eaf8e37 pictureflow configfile conversion:
settings use configfile from pluginlib

cache version is stored in config file, so that changes to the cache
file format can trigger rebuild automatically

cache version is set to 0 to flag cache as needing rebuild

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19780 a1c6a512-1295-4272-9138-f99709370657
2009-01-17 07:13:11 +00:00
Andrew Mahone
56376e6a42 pictureflow cleanup:
remove some old, unused #defines

split DISPLAY_SIZE into DISPLAY_WIDTH and DISPLAY_HEIGHT

scale DISPLAY_WIDTH to compensate for pixel aspect ratio

use new DISPLAY_HEIGHT where appropriate, instead of calculating based
on LCD size

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19779 a1c6a512-1295-4272-9138-f99709370657
2009-01-17 07:12:59 +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
Andrew Mahone
35677cbc54 fix bug causing pictureflow to write one column past left side of screen, resulting in a stripe of rightmost slide appearing on the left side of the screen
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19775 a1c6a512-1295-4272-9138-f99709370657
2009-01-16 08:18:14 +00:00
Andrew Mahone
6e54d94908 reduce pictureflow's fade_color by one multiply, and a few shifts, while still maintaining reasonable quality
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19770 a1c6a512-1295-4272-9138-f99709370657
2009-01-14 08:15:35 +00:00
Andrew Mahone
2fbf09752d remove align_buffer from firmare/general.c, replacing with ALIGN_BUFFER macro, and replace all uses of it (only resize.c in core, and pictureflow and mpegplayer plugins), remove it from plugin_api,
and remove wrapper for it from plugin.h


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19758 a1c6a512-1295-4272-9138-f99709370657
2009-01-13 13:48:26 +00:00
Jens Arnold
36dfdedf3b Make sure pictureflow always uses the user font, both on colour and greyscale targets.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19610 a1c6a512-1295-4272-9138-f99709370657
2008-12-28 22:26:41 +00:00
Andrew Mahone
081b111138 more pictureflow work:
remove create_bmp entirely, storing scaled covers as-is in cache

extend accuracy of fade_color and use it for reflection fading

fix rendering issues while working on renderer, it is slower now but
outside edge of cover no longer cuts off top of next cover if it would
be exposed

fix fsin to have real -1.0 - 1.0 range, and have correct zeroes

adjust center margin option range again, now 0-80, since negative
causes rendering glitches

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19603 a1c6a512-1295-4272-9138-f99709370657
2008-12-28 03:35:07 +00:00
Andrew Mahone
d6bae6c858 FS#8335, with some changes discussed on IRC:
Resize can be turned off (on by default). This will not look good if
covers are larger than the desired size.

Album title config: show at top or bottom, or hide.

Center margin is actual distance, in pixels, between center slide and
adjacent slides. Defaults are now set to show three slides to each side.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19599 a1c6a512-1295-4272-9138-f99709370657
2008-12-27 03:08:38 +00:00