Amaury Pouly
d7871914ac
Fix dangerous casts
...
On Windows 64-bit, the size of long is 32-bit, thus any pointer to long cast is
not valid. In any case, one should use intptr_t and ptrdiff_t when casting
to integers. This commit attempts to fix all instances reported by GCC.
When relevant, I replaced code by the macros PTR_ADD, ALIGN_UP from system.h
Change-Id: I2273b0e8465d3c4689824717ed5afa5ed238a2dc
2017-02-04 17:24:47 +01:00
Thomas Martitz
0250be1d67
lcd-16bit: Split out some functions to lcd-color-common.c
...
An upcoming lcd-24bit.c driver will re-use a lot of code from the 16bit
drivers, so prepare for that.
Change-Id: I7bc7f6b992e5e3f4e0a0aa54dc08103ebb05315f
2014-06-21 00:13:58 +02:00
Thomas Martitz
1f83d2c6d2
lcd_fillrect(): Unify 16bit implementations (move to 16bit-common.c)
...
Change-Id: I457ea9fcb67869fdac7f1201a059a362b087e908
2012-03-20 23:04:43 +01:00
Thomas Martitz
bae2470758
Refactor lcd_clear_viewport().
...
* 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-03-20 22:42:31 +01:00
Jonathan Gordon
b37e6bc8c1
lcd drivers: Convert lcd_[remote_]framebuffer to a pointer
...
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
2012-02-28 11:44:59 +11:00
Rafaël Carré
6b5dff4c7b
lcd-16bit: move lcd_bitmap and lcd_bitmap_transparent to common code
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31131 a1c6a512-1295-4272-9138-f99709370657
2011-12-03 22:39:08 +00:00
Rafaël Carré
26851eaaa9
lcd-16bit: move common code to lcd-16bit-common.c
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31130 a1c6a512-1295-4272-9138-f99709370657
2011-12-03 22:19:17 +00:00
Rafaël Carré
1414e83743
lcd_blit_yuv: move to lcd-16bit-common.c
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31129 a1c6a512-1295-4272-9138-f99709370657
2011-12-03 21:48:34 +00:00
Rafaël Carré
d7802133fd
lcd_blit_yuv: move from sdl driver to lcd16bit-common
...
Declare as weak, so it can be overridden by targets
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31127 a1c6a512-1295-4272-9138-f99709370657
2011-12-03 21:39:33 +00:00
Thomas Martitz
cbf889d3e2
Merge lcd_{alpha,mono}_bitmap_part() for both lcd-16bit. Add small loop optimizations too.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29541 a1c6a512-1295-4272-9138-f99709370657
2011-03-08 17:11:56 +00:00
Thomas Martitz
edea12b21e
Add viewport clipping to lcd_alpha_bitmap_part as lcd_mono_bitmap_part also has.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29526 a1c6a512-1295-4272-9138-f99709370657
2011-03-05 20:09:41 +00:00
Thomas Martitz
9edd6d4ee9
Anti-Aliased Fonts support.
...
This enables Rockbox to render anti-aliased fonts using an alpha blending method.
The input font bitmaps are 4bit, i.e. 4x larger, but the metadata size stays the same.
A tool, convttf, for converting ttf fonts directly to the Rockbox fnt format is provided.
It has a useful help output, but the parameter that works best is -c1 or -c2 (2 for larger font sizes).
Flyspray: FS#8961
Author: Initial work by Jonas Hurrelmann, further work by Fred Bauer, Andrew Mahone, Teruaki Kawashima and myself.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29523 a1c6a512-1295-4272-9138-f99709370657
2011-03-05 18:36:51 +00:00
Thomas Martitz
87409a2619
Move memset6() declaration to string-extra.h, kills a warning compiling for android since it ships a memory.h.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27789 a1c6a512-1295-4272-9138-f99709370657
2010-08-12 13:55:01 +00:00
Tomer Shalev
bc8cefd1a4
Comment out lcd_drawline() DEBUGF messages which show in various simulators
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24784 a1c6a512-1295-4272-9138-f99709370657
2010-02-20 06:42:45 +00:00
Karl Kurbjun
765ff0130a
Add optional viewport clipping, can be enabled with HAVE_VIEWPORT_CLIP. A 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-11-07 18:38:46 +00:00
Jens Arnold
17d7f023b7
Save one branch for archs without conditional execution (e.g. coldfire).
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23355 a1c6a512-1295-4272-9138-f99709370657
2009-10-26 01:55:19 +00:00
Thomas Martitz
78c956d73b
Make current_vp static and importings from Gigabeat F/X/S lcd drivers as they don't need it anymore.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23354 a1c6a512-1295-4272-9138-f99709370657
2009-10-26 01:44:39 +00:00
Jens Arnold
5365cbe0a5
Color targets: Ported assembler optimised transparent bitmap drawing from Gigabeat S/F/X to all ARM targets (~23..40% speedup). * C optimised transparent bitmap drawing for non-ARM targets and sims. * Use the more compact boundary checking for non-transparent native bitmap drawing as well.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23353 a1c6a512-1295-4272-9138-f99709370657
2009-10-26 01:35:31 +00:00
Thomas Martitz
d85c3ec410
Convert lcd_activation callbacks to use the event system to allow for 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-10-20 21:54:59 +00:00
Andrew Mahone
e04f95eab9
LCD bitmap driver code consolidation from FS#4817:
...
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-08-13 08:02:29 +00:00
Nils Wallménius
3d4701a6e4
FS#10080
...
* 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-07-14 13:57:45 +00:00
Jens Arnold
c1d27d105c
Speed up mono bitmap drawing on horizontally packed greyscale targets (greyscale iPods). Average speedup is 80% on PP5002, and 55% on PP502x. * Simplify mono bitmap drawing in the 16 bit driver and the greylib a bit, also giving a slight speedup (3% on PP502x, 1.5% on coldfire).
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21163 a1c6a512-1295-4272-9138-f99709370657
2009-06-01 21:28:03 +00:00
Thomas Martitz
b7739fbf1c
Rework lcd_enabled and lcd_set/call_enable hook
...
a) lcd_enabled() is now lcd_active(), and is available for HAVE_LCD_SLEEP only targets (e.g. ipod video) too. It was depandent on HAVE_LCD_ENALE only before
b) rename the hook accordingly, and implement the hook for other other targets too (e.g. the clip [the only mono target with lcd_enable/lcd_sleep yet, so the code is still in the lcd driver], ipod, fuze, c200)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20331 a1c6a512-1295-4272-9138-f99709370657
2009-03-17 02:43:47 +00:00
Jens Arnold
9eeead922a
Optimize hline, fillrect and mono bitmap drawing for chunky displays (16 bit colour and greylib). Speeds up text rendering by 20..45% on colour coldfire, by 30..50% on colour ARM, and is noticeable in archos pictureflow.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20242 a1c6a512-1295-4272-9138-f99709370657
2009-03-08 17:22:17 +00:00
Nils Wallménius
c42f22cb87
Correct test to avoid drawing outside display, fixes a problem in sim with spacerocks, could possibly fix things on target too.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18691 a1c6a512-1295-4272-9138-f99709370657
2008-10-03 08:10:38 +00:00
Jens Arnold
0884582228
Colour targets: Revert an optimisation from almost 18 months ago that actually turned out to slow down things. Speeds up mono bitmap drawing by ~15..60% depending on target and drawmode.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17876 a1c6a512-1295-4272-9138-f99709370657
2008-06-29 12:56:01 +00:00
Daniel Stenberg
2acc0ac542
Updated our source code header to explicitly mention that we are GPL v2 or
...
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-28 18:10:04 +00:00
Jonathan Gordon
bdbdb97f19
FS#9051 - remove LCD margins... use viewports if you need them...
...
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-06-23 13:20:35 +00:00
Michael Sevakis
adf2e4c9a0
Targets with HAVE_LCD_ENABLE: Provide a means to receive notifications when the lcd is enabled and the image is refreshed so overlayed drawing can also be refreshed. Chiefly mpegplayer needs this so it can redraw the YUV data after the backlight is turned on while paused or when using 'Set Start Time'.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17640 a1c6a512-1295-4272-9138-f99709370657
2008-05-28 10:17:16 +00:00
Michael Sevakis
595d0659d4
Make the transparent bitmaps work on Gigabeat S.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17118 a1c6a512-1295-4272-9138-f99709370657
2008-04-15 13:06:29 +00:00
Jens Arnold
00ac809cc7
LCD drivers: * Automatically optimise horizontal and vertical lines drawn 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-04-12 07:53:33 +00:00
Dave Chapman
20b38238ab
Make the lcd_gradient_* functions static - they're not exported in lcd.h
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16070 a1c6a512-1295-4272-9138-f99709370657
2008-01-13 09:53:32 +00:00
Dave Chapman
3646c31367
Add the viewport functions to the screens API, including a new getfont() 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-08 01:22:14 +00:00
Dave Chapman
945c8a221a
Add viewport capabilities to all the LCD drivers, and adapt scrolling code. 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
2008-01-07 20:34:11 +00:00
Nicolas Pennequin
485bbbdb30
Make the "current line" value in the gradient style code zero-based, and an attempt at more understandable names and better comments.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15886 a1c6a512-1295-4272-9138-f99709370657
2007-12-06 17:09:24 +00:00
Nicolas Pennequin
1d86dbffe3
Accept FS#7901 by Akio Idehara: Fix gradient for scrolling lines when more than one line is selected
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15698 a1c6a512-1295-4272-9138-f99709370657
2007-11-19 18:14:51 +00:00
Michael Sevakis
57d71e4267
Add some CACHEALIGN_* macros and a helper function to assist in aligning data and buffers on PortalPlayer processors to cache line boundaries. They're noops when PROC_NEED_CACHEALIGN isn't defined. Go safe and increase the value to 32 since I'm not sure yet if 16 is sufficient - changing that is a one-liner. Add helper to plugin API which will be needed shortly.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15523 a1c6a512-1295-4272-9138-f99709370657
2007-11-08 05:17:20 +00:00
Jens Arnold
93434b4f75
Bugfix: The solid colour and gradient selector no longer extends to the left display margin when the text needs to scroll and the lcd margins are zeroed, e.g. overwriting the icon in the file browser when loading a file.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15115 a1c6a512-1295-4272-9138-f99709370657
2007-10-15 07:09:53 +00:00
Antoine Cellerier
7b7b9310e7
Save a few bytes in the line selector style handling code.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14927 a1c6a512-1295-4272-9138-f99709370657
2007-09-30 21:12:33 +00:00
Nicolas Pennequin
49a9e1ef35
Make the gradient look better when more than one line is selected (running time, ID3 info, cuesheet viewer...). I haven't found a solution for scrolling yet, so that won't look too good.
...
The recording screen code needs a bit of adapting too, but I don't have a target to test on, so leave it for now.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14884 a1c6a512-1295-4272-9138-f99709370657
2007-09-28 13:49:43 +00:00
Nicolas Pennequin
f333c97176
Factor out the gradient drawing code. Should save some bytes and makes the code more readable.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14883 a1c6a512-1295-4272-9138-f99709370657
2007-09-28 12:12:35 +00:00
Nicolas Pennequin
68be596335
Fix corrupted display of the gradient selector for scrolling lines in some colour configurations. Thanks to preglow for spotting.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14869 a1c6a512-1295-4272-9138-f99709370657
2007-09-27 17:02:26 +00:00
Nicolas Pennequin
f3b015f73b
FS#7808 by Tom Ross, Ken Fazzone and me, with help from Antoine Cellerier.
...
Add two new line selector types: solid colour and gradient. Solid colour only uses the primary colour setting.
The secondary colour setting is used for the gradient. Text colour for the selected item is also changeable.
These new settings are a bit controversial so they may be removed later.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14868 a1c6a512-1295-4272-9138-f99709370657
2007-09-27 15:42:55 +00:00
Will Robertson
590501cfe4
Merge the Gigabeat S branch back into trunk. Fingers crossed nothing breaks.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14805 a1c6a512-1295-4272-9138-f99709370657
2007-09-21 15:51:53 +00:00
Michael Sevakis
58fc279d26
Scroll on main and remote with a single thread. Change the way system 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-07-28 08:12:05 +00:00
Michael Sevakis
ba0a9c418c
Hrm. Commit the other needed change too. :)
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13899 a1c6a512-1295-4272-9138-f99709370657
2007-07-15 01:16:15 +00:00
Jonathan Gordon
60e7472f72
Fix FS#7044 - if the color RGB(0,255,255) is in a bmp it will be replaced with the current foreground colour
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13878 a1c6a512-1295-4272-9138-f99709370657
2007-07-14 09:19:46 +00:00
Jonathan Gordon
6e21c146f8
Fix FS#7336 - scrolling lines don't stay coloured.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13682 a1c6a512-1295-4272-9138-f99709370657
2007-06-22 04:30:08 +00:00
Brandon Low
74cbb0a1b2
Give color targets the ability to display each LCD line a different color and use this newfangled ability to provide themable colored file types. See the comments on read_color_theme_file and the sample.colors file provided for how to use this. .colors files go in themes directory for now. This separate line color function should be trivial to add to menus and wpss.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13656 a1c6a512-1295-4272-9138-f99709370657
2007-06-17 21:16:34 +00:00
Dave Chapman
0030378f74
More gigabeat LCD cleanup and completely remove the use of DMA for lcd_update_rect() (this was accidentally disabled anyway by the previous commit). The DMA version of lcd_update_rect() managed 64fps, but the memcpy based implementation manages 264fps.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13393 a1c6a512-1295-4272-9138-f99709370657
2007-05-15 16:00:06 +00:00