How does the ChannelGPU object work?

My question is in the title.

Inside the RenderWindow object there is the ChannelGPU object which sounds promising but not sure if it can be used or not… or how…


@andy, @nathanletwory - is this something you can help with?

I have not heard of the ChannelGPU object before. It probably has to do with the post-effects pipeline, @DavidEranen , @andy ?


What are you trying to do?


Hello Andy,

To write our image (texture) directly into the window (with the GPU) - without copying it first to the CPU.


The developer who works on this is currently on holiday. Realistically we will have to wait for him to get back to answer this with any conviction.

But I do seem to remember that we don’t actually allow that with the render window because of some restrictions on the use of OpenGL that we have.

Thanks for the advance information.

Hi @marton.parlagh,

The function ChannelGPU.TextureHandle() returns an OpenGL handle to the texture, and you can do what you want with that texture. If you want to update the texture, you can for example use OpenGL to draw to it by setting it as a framebuffer texture.

Remember to commit the changes on the channel by calling PostEffectChannel.Commit() after modifying the texture.

Did this clear things up?


Thanks David,

Still two questions:

We don’t have the PostEffectChannel.Commit under RhinoCommon right (only C++)?

And it is not clear how to get this ChannelGPU object from the RenderWindow?