1
0
Fork 0
forked from len0rd/rockbox
Commit graph

66 commits

Author SHA1 Message Date
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
Andrew Mahone
932f30d825 Add support for scaled bitmap loads, and for greylib display, to
pictureflow, as well as several small fixes in the areas modified.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19598 a1c6a512-1295-4272-9138-f99709370657
2008-12-27 00:26:15 +00:00
Andrew Mahone
9058620849 Make scaler output truly pluggable, add an 8-bit greyscale output to
pluginlib for use with greylib, and add source for a test scaled bmp
viewer using greylib.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19593 a1c6a512-1295-4272-9138-f99709370657
2008-12-26 07:05:13 +00:00
Jonas Häggqvist
5b2a600007 Yesterday's bugfix commit was buggy. Try again (FS#9634 by Thomas Martitz).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19432 a1c6a512-1295-4272-9138-f99709370657
2008-12-14 00:40:19 +00:00
Jonas Häggqvist
7c18a3d91a Bugfixes for Pictureflow (FS#9627 by Thomas Martitz):
- Get complete metadata for albums (closes FS#9606).
 - Explicitly remove existing cache before creating new one (closes FS#9135).
 - Resetting the selection variable upon re-entering tracklist mode (better fix for FS#8347).
 - Use the system-wide HAVE_SCROLLWHEEL define rather than the local SCROLLWHEEL.
 - Change a buffer to be of size MAX_PATH+1 rather than MAX_PATH. It's unclear whether this is needed or not.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19408 a1c6a512-1295-4272-9138-f99709370657
2008-12-12 21:28:54 +00:00
Jonas Häggqvist
790f5ae1e0 Pictureflow:
- Always initialise artist and albumartist to NULL to avoid segfaults and other nastiness (closes FS#9266). Ideally they should be set to their actual values (would fix FS#9606), but this fix at least avoids some problems.
 - Be a bit more precise in the error given when no albumart is found.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19404 a1c6a512-1295-4272-9138-f99709370657
2008-12-12 19:38:08 +00:00
Michael Sevakis
8cfbd3604f Use cookies for thread identification instead of pointers directly which gives a buffer against wrongly identifying a thread when the slot is recycled (which has been nagging me for awhile). A slot gets 255 uses before it repeats. Everything gets incompatible so a full update is required.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19377 a1c6a512-1295-4272-9138-f99709370657
2008-12-10 08:57:10 +00:00
Björn Stenberg
c6b3d38a15 New makefile solution: A single invocation of 'make' to build the entire tree. Fully controlled dependencies give faster and more correct recompiles.
Many #include lines adjusted to conform to the new standards.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19146 a1c6a512-1295-4272-9138-f99709370657
2008-11-20 11:27:31 +00:00
Björn Stenberg
ac488f8cb7 Makefile overhaul. All generated bitmaps are now explicitly in OBJDIR/bitmaps and OBJDIR/pluginbitmaps, and plugins properly depend on their respective bitmap files. Fixes #6847.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18987 a1c6a512-1295-4272-9138-f99709370657
2008-11-03 14:37:50 +00:00
Nicolas Pennequin
67def0b18c Fix a display bug with the tracklist in Picture Flow. Thanks to Thomas Schott.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18537 a1c6a512-1295-4272-9138-f99709370657
2008-09-17 16:03:54 +00:00