occasional error with wraplist and pagecontrol

  Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Post Reply
malte Offline
Skilled Python Coder
Posts: 1,352
Joined: Jan 2010
Reputation: 28
Location: Germany
Post: #1
I have a strange problem since one of the latest nightly builds. Can't say for sure when it started.

In my script I am using a wraplist with a page control like this:

Code:
<control type="wraplist" id="50">
    <posx>-115</posx>
    <posy>350</posy>
    <width>1420</width>
    <height>300</height>
    <onleft>50</onleft>
    <onright>50</onright>
    <onup>500</onup>                    
    <ondown>60</ondown>
    <orientation>horizontal</orientation>
    <focusposition>4</focusposition>
    <viewtype label="Info">wrap</viewtype>
    <scrolltime>100</scrolltime>
    <pagecontrol>60</pagecontrol>
    <preloaditems>2</preloaditems>
    <itemlayout width="170" height="300">
        <control type="group">
            <control type="image">
                <posx>0</posx>
                <posy>15</posy>
                <width>160</width>
                <height>240</height>                                
                <aspectratio align="center" aligny="bottom">keep</aspectratio>
                <bordertexture border="2">rcb-button-nofocus.png</bordertexture>
                <bordersize>2</bordersize>
                <texture background="true">$INFO[ListItem.ActualIcon]</texture>                                
            </control>
        </control>
    </itemlayout>
    <focusedlayout width="160" height="240">
        <control type="image">
            <posx>-5</posx>
            <posy>0</posy>
            <width>160</width>
            <height>240</height>
            <aspectratio align="center" aligny="bottom">keep</aspectratio>
            <bordertexture border="8">rcb-ThumbBorder.png</bordertexture>
            <bordersize>8</bordersize>
            <texture background="true">$INFO[ListItem.Thumb]</texture>
            <animation reversible="false" effect="zoom" end="120" center="auto" time="200">Focus</animation>
        </control>
    </focusedlayout>
</control>
<control type="scrollbar" id="60">
    <posx>400</posx>
    <posy>30r</posy>
    <width>480</width>
    <height>25</height>
    <texturesliderbackground border="14,0,14,0">rcb-ScrollBarH.png</texturesliderbackground>
    <texturesliderbar border="14,0,14,0">rcb-ScrollBarH_bar.png</texturesliderbar>
    <texturesliderbarfocus border="14,0,14,0">rcb-ScrollBarH_bar_focus.png</texturesliderbarfocus>
    <textureslidernib>rcb-ScrollBarNib.png</textureslidernib>
    <textureslidernibfocus>rcb-ScrollBarNib.png</textureslidernibfocus>
    <onup>50</onup>
    <ondown>2</ondown>
    <showonepage>false</showonepage>
    <orientation>horizontal</orientation>
    <visible allowhiddenfocus="true">Control.IsVisible(50)</visible>
</control>

This works without problems with Dharma and earlier nightly builds. But since some releases I always get this error when I try to launch my script:

Code:
12:39:51 T:7704   ERROR: exception in CApplication::FrameMove()
12:39:51 T:7704   ERROR: exception in CApplication::Render()
12:39:51 T:7704   ERROR: exception in CApplication::FrameMove()
12:39:51 T:7704   ERROR: m_pD3DDevice->BeginScene() failed. 8876086C - D3DERR_INVALIDCALL (Invalid call)

I made a little test script to reproduce the error. You can get it here.

I found three ways to get rid of this error:
1. Make the wraplist a list (not wanted)
2. Remove the pagecontrol (not wanted)
3. In the test script add the code that is commented out atm in onInit (fill the list with dummy items)

Step 3 works in my test script and I can use a wraplist with pagecontrol, so there is no general error with this combination. But for some reason this does not work in my real script where I use this list (Rom Collection Browser). I guess that there may be timing issues: maybe the list is not filled completely while XBMC is trying to add the pagecontrol or something like this. But I did not find a way to get this working reliably in RCB.

Any hints what has changed in the last nightlies that could cause these issues? Or any ideas what I could try to get this working again?
find quote
malte Offline
Skilled Python Coder
Posts: 1,352
Joined: Jan 2010
Reputation: 28
Location: Germany
Post: #2
Ok, I found out what happens. In RCB I restore the viewmode on startup and this is done before the list is loaded (otherwise it looks a bit strange - first create the list and than change viewmode). So it is like in the test script that XBMC tries to render an empty list and this crashes.

As a work around I create a dummy item and add this to the list before I set the view mode. But I am not really happy with it...
find quote
malte Offline
Skilled Python Coder
Posts: 1,352
Joined: Jan 2010
Reputation: 28
Location: Germany
Post: #3
Trac ticket
find quote