1
0
Fork 0
forked from len0rd/rockbox
Fork of rockbox tailored for ipod classic
Find a file
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
android android: Fix configure script for "newer" versions of the NDK 2020-04-13 16:51:58 +02:00
apps LCD core move buf ptr and address look up function viewport struct 2020-10-26 12:28:48 -04:00
backdrops Add Cabbiev2 port for 128x96x16 targets (Samsung YH-820), made by me. 2014-03-27 19:50:48 +00:00
bootloader ClipPlus BOOTLOADER DONT FIT! 2020-10-23 20:38:59 -04:00
debian Prepare new maemo release 2013-03-10 12:12:38 +01:00
docs Revert Non-Alpha Updated 8x8 tango icons 2020-10-25 16:21:58 +00:00
firmware LCD core move buf ptr and address look up function viewport struct 2020-10-26 12:28:48 -04:00
fonts Remove superfluous executable bits on a bunch of files. 2011-06-08 14:22:03 +00:00
gdb [1/4] Remove SH support and all archos targets 2020-07-24 21:20:13 +00:00
icons Revert Non-Alpha Updated 8x8 tango icons 2020-10-25 16:21:58 +00:00
lib Build: Bump all toolchains to GCC 4.9.4 + Binutils 2.26.1 2020-10-13 16:27:07 +00:00
manual SVG image of the Aigo Eros Q and other formats for the manual. 2020-10-23 10:41:46 +02:00
packaging Prepare unofficial pandora release 2013-03-10 14:09:30 +01:00
rbutil rbutil: Rename libbzip2.a to libbz2.a. 2020-10-22 19:20:48 +02:00
tools h300: add support for ROM image generation 2020-10-26 01:37:42 +00:00
uisimulator Add UI Simulator for Eros Q / K series 2020-10-21 13:24:01 +00:00
utils rbutil: Fix native Windows build for tools. 2020-10-21 21:33:39 +02:00
wps New port: AIGO EROS Q / EROS K 2020-10-11 16:37:17 -04:00
.gitattributes Add a gitattributes file for the migration. 2011-12-01 14:14:59 +00:00
.gitignore Update .gitignore 2020-08-10 17:52:27 +00:00

               __________               __   ___.
     Open      \______   \ ____   ____ |  | _\_ |__   _______  ___
     Source     |       _//  _ \_/ ___\|  |/ /| __ \ /  _ \  \/  /
     Jukebox    |    |   (  <_> )  \___|    < | \_\ (  <_> > <  <
     Firmware   |____|_  /\____/ \___  >__|_ \|___  /\____/__/\_ \
                       \/            \/     \/    \/            \/

Build Your Own Rockbox

1. Clone 'rockbox' from git (or extract a downloaded archive).

   $ git clone git://git.rockbox.org/rockbox

     or

   $ tar xjf rockbox.tar.bz2

2. Create a build directory, preferably in the same directory as the firmware/
   and apps/ directories. This is where all generated files will be written.

   $ cd rockbox
   $ mkdir build
   $ cd build

3. Make sure you have sh/arm/m68k-elf-gcc and siblings in the PATH. Make sure
   that you have 'perl' in your PATH too. Your gcc cross compiler needs to be
   a particular version depending on what player you are compiling for. These
   can be acquired with the rockboxdev.sh script in the /tools/ folder of the
   source, or will have been included if you've installed one of the
   toolchains or development environments provided at http://www.rockbox.org/

   $ which sh-elf-gcc
   $ which perl

4. In your build directory, run the 'tools/configure' script and enter what
   target you want to build for and if you want a debug version or not (and a
   few more questions). It'll prompt you. The debug version is for making a
   gdb version out of it. It is only useful if you run gdb towards your target
   Archos.

   $ ../tools/configure

5. *ploink*. Now you have got a Makefile generated for you.

6. Run 'make' and soon the necessary pieces from the firmware and the apps
   directories have been compiled, linked and scrambled for you.

   $ make
   $ make zip

7. unzip the rockbox.zip on your music player, reboot it and
   *smile*.

If you want to build for more than one target, just create several build
directories and create a setup for each target:

   $ mkdir build-fmrecorder
   $ cd build-fmrecorder
   $ ../tools/configure

   $ mkdir build-player
   $ cd build-player
   $ ../tools/configure

Questions anyone? Ask on the mailing list. We'll be happy to help you!