"http wrote:
Once an roScreen is created, the display stack enters "Game Mode", and other screen components cannot be used. Other screen components cannot be intermixed with roScreens as the roScreen display stack is maintained independently from the main screen component display stack. When the final roScreen component is closed, other screen components can be used again.
"TheEndless" wrote:
Since you're not using a double-buffered screen, you're most likely seeing an anomaly resulting from the back buffer not being cleared first. Per the documentation, you cannot intermix roScreen and other screen components:"http wrote:
Once an roScreen is created, the display stack enters "Game Mode", and other screen components cannot be used. Other screen components cannot be intermixed with roScreens as the roScreen display stack is maintained independently from the main screen component display stack. When the final roScreen component is closed, other screen components can be used again.
"RokuMarkn" wrote:
You're basically drawing to an roScreen, deliberately NOT calling Finish, then destroying the screen. This is going to produce undefined results. I don't know why you commented out the Finish call, but you need it to get consistent results. Also setting the screen to invalid immediately after drawing it will cause it to display then immediately disappear.
--Mark
"gokool" wrote:"TheEndless" wrote:
Since you're not using a double-buffered screen, you're most likely seeing an anomaly resulting from the back buffer not being cleared first. Per the documentation, you cannot intermix roScreen and other screen components:"http wrote:
Once an roScreen is created, the display stack enters "Game Mode", and other screen components cannot be used. Other screen components cannot be intermixed with roScreens as the roScreen display stack is maintained independently from the main screen component display stack. When the final roScreen component is closed, other screen components can be used again.
thanks for the reply.
I was following the same for my app. I would close the roscreen and launch a new component, and again create a roscreen. This seems to be working in Roku3 but in Roku2, the new component is not getting cleared completely(i.e i can still see the background) but port responses are from the recreated roscreen. When I put a sleep(200) between closing a standard component and recreating a roscreen, it worked in Roku2 also.
So, I wanted to know what was going wrong here and how can i make my app work consistently across all Roku versions.
Is there any way to find which item is on top of the stack or if there are differents stacks maintained, how to clear one programatically?
Thanks
"TheEndless" wrote:
You're never clearing the screen in your code. I'd try adding a screen.Clear(&H000000FF) after you create the screen to ensure the screen is clear before drawing to it.
"gokool" wrote:"TheEndless" wrote:
You're never clearing the screen in your code. I'd try adding a screen.Clear(&H000000FF) after you create the screen to ensure the screen is clear before drawing to it.
If that is the case, then it shouldnt work in Roku3 also correct? But it is working fine in Roku3 and not working on Roku2.
"TheEndless" wrote:"gokool" wrote:"TheEndless" wrote:
You're never clearing the screen in your code. I'd try adding a screen.Clear(&H000000FF) after you create the screen to ensure the screen is clear before drawing to it.
If that is the case, then it shouldnt work in Roku3 also correct? But it is working fine in Roku3 and not working on Roku2.
You asked how to make it consistent. I believe that would make it consistent, and is also what I personally would consider a best practice (clearing the screen before you use it).