Rockbox.org home
Downloads
Release release
Dev builds dev builds
Extras extras
themes themes
Documentation
Manual manual
Wiki wiki
Device Status device status
Support
Forums forums
Mailing lists mailing lists
IRC IRC
Development
Bugs bugs
Patches patches
Dev Guide dev guide
Search



Donate

Rockbox Technical Forums


Login with username, password and session length
Home Help Search Staff List Login Register
News:

Thank You for your continued support and contributions!

+  Rockbox Technical Forums
|-+  Support and General Use
| |-+  Theming and Appearance Customization
| | |-+  [320x240] Tile based main menu
« previous next »
  • Print
Pages: 1 2 3 [4]

Author Topic: [320x240] Tile based main menu  (Read 2283 times)

Offline Frankenpod

  • Member
  • *
  • Posts: 572
Re: [320x240] Tile based main menu
« Reply #45 on: June 12, 2021, 06:57:42 PM »
@millim

Hey, I found a glitch with the theme - but to be honest, it's the exact same glitch I've been having with my own icon-using themes.  If you go into the files menu, and there are long file names that need to scroll, it causes a problem when you come back out again - see the screenshots.

Either there's something we both get wrong about the logic of viewports, or there's a bug to do with scrolling text that only comes up when one does things with custom %vi statements to use icons.  The fact that there's already a bug with scrolling text, relating to the backgrounds of the SBS and WPS, makes me think it's the latter.


* glitch1.png (40.69 kB, 444x342 - viewed 58 times.)

* glitch.png (23.79 kB, 385x320 - viewed 60 times.)
Logged

Offline Frankenpod

  • Member
  • *
  • Posts: 572
Re: [320x240] Tile based main menu
« Reply #46 on: June 13, 2021, 04:32:23 AM »
I do suspect there's a bug in rockbox with how scrolling is implemented.  As well as this, I get other strange things happening with scrolling lines if I define a text-based %vi viewport.  And at least at one point there was a known existing bug where scrolling text on the WPS gets the background from the SBS.
Logged

Offline millim

  • Member
  • *
  • Posts: 19
Re: [320x240] Tile based main menu
« Reply #47 on: June 13, 2021, 04:07:48 PM »
Hello Frankenpod,

oh, I was not aware of this either. But, ginkgo should have run into the same issue? He did not mention this. Maybe there is a missing link how to manage this? I think %Vi( ) uses the display buffers in a different way. After booting the ipod, the SBS backdrop gets loaded nicely, when the interpreter gets to the point %Vi(-,32,20,256,192,1), this portion of the screen defaults back to the rockbox bootscreen for 1 second, then the tiles get visible. This might connect the the scrolling? Maybe the line gets registered somewhere to scroll, when going back to the tile screen, it does not get automatically de-registered or obsolete to update, respectively.   

Maybe ginkgo or the development team can comment on this?

millim
Logged

Offline millim

  • Member
  • *
  • Posts: 19
Re: [320x240] Tile based main menu
« Reply #48 on: June 14, 2021, 11:36:58 AM »
Some update...

I was checking a bit the code and I think it is indeed a bug in rockbox. Maybe it is connected to the fact that the skinlist concept is not completed, it still needs the classical skin list engine:

in list.c
Code: [Select]
    FOR_NB_SCREENS(i)
    {
#ifdef HAVE_LCD_BITMAP
        if (!skinlist_draw(&screens[i], gui_list))
#endif
        list_draw(&screens[i], gui_list);
    }

it looks that the gui_list structure is not correctly liked when stepping out from the list_draw to the skinlist_draw viewports, by pressing MENU actually when a list item is highlighted and scrolling so:

Code: [Select]
struct viewport *parent = (list->parent[screen]);
display->scroll_stop_viewport(parent);

has no effect.

millim

Logged

Offline millim

  • Member
  • *
  • Posts: 19
Re: [320x240] Tile based main menu
« Reply #49 on: June 15, 2021, 05:06:27 AM »
Some update...

found a simple fix. Unfortunately, need to modify the code. You may test if this also works for you. In list-skinned.c: need to add:

Code: [Select]
    if (listcfg[screen]->tile == true)
      display->scroll_stop();

Showing the skinlist_draw() function and how to add the fix:

Code: [Select]
bool skinlist_draw(struct screen *display, struct gui_synclist *list)
{
    int cur_line, display_lines;
    const int screen = display->screen_type;
    struct viewport *parent = (list->parent[screen]);
    char* label = NULL;
    const int list_start_item = list->start_item[screen];
    struct gui_wps wps;
    if (!skinlist_is_configured(screen, list))
        return false;

    current_list = list;
    wps.display = display;
    wps.data = listcfg[screen]->data;
    display_lines = skinlist_get_line_count(screen, list);
    label = (char *)SKINOFFSETTOPTR(get_skin_buffer(wps.data), listcfg[screen]->label);
    display->set_viewport(parent);
    display->clear_viewport();

    // fix the scrolling glitch
    if (listcfg[screen]->tile == true)
      display->scroll_stop();

millim
 
Logged

Offline Bilgus

  • Developer
  • Member
  • *
  • Posts: 720
Re: [320x240] Tile based main menu
« Reply #50 on: June 16, 2021, 08:38:39 AM »
I think last time I ran into this bug the order of displaying viewports made a difference but this was like 2016
Logged

Offline Bilgus

  • Developer
  • Member
  • *
  • Posts: 720
Re: [320x240] Tile based main menu
« Reply #51 on: June 16, 2021, 08:43:01 AM »
BTW @millim nice sleuthing :)

if you remove the if statement and make it
unconditionally call scroll_stop does it
work properly for you?
« Last Edit: June 16, 2021, 08:48:46 AM by Bilgus »
Logged

Offline millim

  • Member
  • *
  • Posts: 19
Re: [320x240] Tile based main menu
« Reply #52 on: June 16, 2021, 04:50:09 PM »
.. well had to investigate a bit how things play together  :). Yes, making it un-conditional works also for me. Do you plan to add this fix for the next release?

BTW, I have also added pictureflow to the main menu. It was already partially there, only three lines of code are necessary to make it work. Would also be nice if you can consider this extension.

I have attached the code with these modifications.

millim


* Screenshot from 2021-06-16 22-36-01.png (11.33 kB, 325x244 - viewed 55 times.)
* root_menu.c (26.96 kB - downloaded 24 times.)
Logged

Offline Frankenpod

  • Member
  • *
  • Posts: 572
Re: [320x240] Tile based main menu
« Reply #53 on: June 16, 2021, 06:15:56 PM »
@millim

Sounds as if you have honed-in on the problem.  Dealing with the Rockbox code itself is, as the phrase has it "above my pay-grade", so I'd rather leave it to any devs who care to take an interest to sort out.  I wonder to what extent it's the same problem I've found with custom %vi statements that aren't tile-based?  Difficult to provide a screenshot as they don't seem to happen the same way in the simulator as on the ipod.  Either the text and background come out the same colour (regardless of what colours you tell it to use) for selected lines that are long enough to trigger scrolling, or, even more weirdly, the scrolling fails to work correctly and the text instead of scrolling just sort of smears itself like wet ink being smudged across a page.
Logged

Offline dconrad

  • Member
  • *
  • Posts: 90
Re: [320x240] Tile based main menu
« Reply #54 on: July 15, 2021, 09:36:01 PM »
I finally got a chance to try this theme, it's looking great! I love the vu meters on the wps  ;D

This might have been covered in the thread already (I confess not to have read it all), but is there any chance the main menu icons could support reordering and arbitrary hiding/showing? (this is done in the main menu config plugin). That's probably a fairly hard problem but figured I would ask.

I have the Recent Bookmarks enabled, my device doesn't have recording, and I've reordered the menu a bit (put "Now Playing" at the top), so half of the icons no longer match.
Logged

  • Print
Pages: 1 2 3 [4]
« previous next »
+  Rockbox Technical Forums
|-+  Support and General Use
| |-+  Theming and Appearance Customization
| | |-+  [320x240] Tile based main menu
 

  • SMF 2.0.18 | SMF © 2021, Simple Machines
  • Rockbox Privacy Policy
  • XHTML
  • RSS
  • WAP2

Page created in 0.178 seconds with 17 queries.