Roku Developer Program

Join our online forum to talk to Roku developers and fellow channel creators. Ask questions, share tips with the community, and find helpful resources.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
ljunkie
Visitor

roImageCanvas on roGridScreen

Is it possible to overlay an image canvas over a grid screen and still show the underlying grid? I know it takes focus, and that is what I want/expect, but whenever an image canvas is shown on a grid it sets the underlying screen black except for the overhang. If I do the exact same thing on a posterscreen it works just fine -> I can see the underlying posterscreen.
0 Kudos
8 REPLIES 8
RokuChris
Roku Employee
Roku Employee

Re: roImageCanvas on roGridScreen

I haven't actually tried it, but it's not surprising that it doesn't work. roGridScreen uses the video plane, other screens use the graphics plane. Mixing the two is probably what's causing the behavior you're seeing.
0 Kudos
RokuRobB
Streaming Star

Re: roImageCanvas on roGridScreen

You can do this with other screen types, but not the grid. The grid is rendered in the video plane whereas the other screen types are not.
0 Kudos
ljunkie
Visitor

Re: roImageCanvas on roGridScreen

Thank for the quick response. I was hoping I could create a custom info pop up instead of using a dialog, which is working great on a poster screen, but I guess I should have tested this on the grid screen too before I did the work. Any idea if this will be possible later? Re-inventing the grid screen seems like a daunting task.
0 Kudos
TheEndless
Channel Surfer

Re: roImageCanvas on roGridScreen

"ljunkie" wrote:
Thank for the quick response. I was hoping I could create a custom info pop up instead of using a dialog, which is working great on a poster screen, but I guess I should have tested this on the grid screen too before I did the work. Any idea if this will be possible later? Re-inventing the grid screen seems like a daunting task.

It used to work, but changed sometime back in the early 4.x firmware period. The Amazon Instant channel has a custom menu on its grid screen, but if you look closely, the fonts change slightly, so I think they might be faking it by recreating the current grid state on an roImageCanvas. That might be an option for you..?
My Channels: http://roku.permanence.com - Twitter: @TheEndlessDev
Instant Watch Browser (NetflixIWB), Aquarium Screensaver (AQUARIUM), Clever Clocks Screensaver (CLEVERCLOCKS), iTunes Podcasts (ITPC), My Channels (MYCHANNELS)
0 Kudos
ljunkie
Visitor

Re: roImageCanvas on roGridScreen

I figured amazon most likely using there own grid since they also hide the BoB when you scroll. I know the BoB hides in a mixed mode grid when changing rows with different aspects, but it doesn't hide when staying in the same row yet amazon has managed to do this. Either way, the idea of recreating the grid is interesting and definitely less work than recreating the functionality of a grid. It would definitely be a performance hit though having to load all the images again along with the logic of trying to figure out what exactly was displayed on the grid and where.

"TheEndless" wrote:
"ljunkie" wrote:
Thank for the quick response. I was hoping I could create a custom info pop up instead of using a dialog, which is working great on a poster screen, but I guess I should have tested this on the grid screen too before I did the work. Any idea if this will be possible later? Re-inventing the grid screen seems like a daunting task.

It used to work, but changed sometime back in the early 4.x firmware period. The Amazon Instant channel has a custom menu on its grid screen, but if you look closely, the fonts change slightly, so I think they might be faking it by recreating the current grid state on an roImageCanvas. That might be an option for you..?
0 Kudos
TheEndless
Channel Surfer

Re: roImageCanvas on roGridScreen

"ljunkie" wrote:
I figured amazon most likely using there own grid since they also hide the BoB when you scroll. I know the BoB hides in a mixed mode grid when changing rows with different aspects, but it doesn't hide when staying in the same row yet amazon has managed to do this. Either way, the idea of recreating the grid is interesting and definitely less work than recreating the functionality of a grid. It would definitely be a performance hit though having to load all the images again along with the logic of trying to figure out what exactly was displayed on the grid and where.

I would expect the grid and the image canvas to use the same cache, so I don't think there'd be much, if any more of a performance impact than drawing your custom dialog requires already. As far as figuring out what's currently displayed on the grid, that shouldn't be too difficult, either, as long as you keep track of the current visible rows and items with the isListItemFocused event. You shouldn't even have to worry about the overhang, logos, breadcrumb, or background color, as though actually still display when you draw a transparent canvas over the grid.
My Channels: http://roku.permanence.com - Twitter: @TheEndlessDev
Instant Watch Browser (NetflixIWB), Aquarium Screensaver (AQUARIUM), Clever Clocks Screensaver (CLEVERCLOCKS), iTunes Podcasts (ITPC), My Channels (MYCHANNELS)
0 Kudos
ljunkie
Visitor

Re: roImageCanvas on roGridScreen

Good point on the cache, since I'd be using the same urls that were already loaded, it *should* be cached by the roku. I would already know what is viewed on the screen, but exactly where is the fun part - I made that more of a headache for myself since I allow EU to change the display mode and grid style on their own.. so I'd have to figure out exactly where the Roku places elements for all of those types instead of one. Not impossible, just to bit of work when sadly this would have "just" worked prior to some 4.x firmware. You are right about overhangs, those don't seem to be affected. It's too bad one can't just take a snapshot of the screen as an image and use that as the layer 0.

"TheEndless" wrote:
I would expect the grid and the image canvas to use the same cache, so I don't think there'd be much, if any more of a performance impact than drawing your custom dialog requires already. As far as figuring out what's currently displayed on the grid, that shouldn't be too difficult, either, as long as you keep track of the current visible rows and items with the isListItemFocused event. You shouldn't even have to worry about the overhang, logos, breadcrumb, or background color, as though actually still display when you draw a transparent canvas over the grid.
0 Kudos
TheEndless
Channel Surfer

Re: roImageCanvas on roGridScreen

"ljunkie" wrote:
Good point on the cache, since I'd be using the same urls that were already loaded, it *should* be cached by the roku. I would already know what is viewed on the screen, but exactly where is the fun part - I made that more of a headache for myself since I allow EU to change the display mode and grid style on their own.. so I'd have to figure out exactly where the Roku places elements for all of those types instead of one. Not impossible, just to bit of work when sadly this would have "just" worked prior to some 4.x firmware. You are right about overhangs, those don't seem to be affected. It's too bad one can't just take a snapshot of the screen as an image and use that as the layer 0.

"TheEndless" wrote:
I would expect the grid and the image canvas to use the same cache, so I don't think there'd be much, if any more of a performance impact than drawing your custom dialog requires already. As far as figuring out what's currently displayed on the grid, that shouldn't be too difficult, either, as long as you keep track of the current visible rows and items with the isListItemFocused event. You shouldn't even have to worry about the overhang, logos, breadcrumb, or background color, as though actually still display when you draw a transparent canvas over the grid.

Ahh yes... different grid styles definitely means more work.. and don't forget about SD!
Also, for better performance on the canvas, make sure you call SetRequireAllImagesToDraw(False), otherwise it redraws the entire screen anytime an element on the canvas changes (like a button highlight).
My Channels: http://roku.permanence.com - Twitter: @TheEndlessDev
Instant Watch Browser (NetflixIWB), Aquarium Screensaver (AQUARIUM), Clever Clocks Screensaver (CLEVERCLOCKS), iTunes Podcasts (ITPC), My Channels (MYCHANNELS)
0 Kudos
Need Assistance?
Welcome to the Roku Community! Feel free to search our Community for answers or post your question to get help.

Become a Roku Streaming Expert!

Share your expertise, help fellow streamers, and unlock exclusive rewards as part of the Roku Community. Learn more.