GLPbuffer doesn't work in Remote Desktop?

classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|

GLPbuffer doesn't work in Remote Desktop?

cznlzq

Hi,

I was trying to use the Pbuffer in JOGL and I found out the it doesn't work in Remote Desktop in Windows System.

I'm not sure it's bug or not. Running in local machine is great but remote desktop is not working.


A very simple example is given below.

public testJOGL() {

        GLCapabilities caps = new GLCapabilities(GLProfile.getDefault());
        GLCanvas canvas = new GLCanvas(caps);
        this.setLayout(new BorderLayout());
        this.add(canvas, BorderLayout.CENTER);
        canvas.addGLEventListener(this);

       //this doesn't work in remote desktop===========================================
        GLPbuffer offscreenPBuffer = GLDrawableFactory.getFactory(GLProfile.getDefault()).createGLPbuffer(
            null, caps, null,
            600, 400,
            canvas.getContext());
       ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

        // Run the animation loop using the fixed-rate Frame-per-second animator,
        // which calls back display() at this fixed-rate (FPS).
        animator = new FPSAnimator(canvas, REFRESH_FPS, true);
    }

And it tells:
Exception in thread "main" javax.media.opengl.GLException: Pbuffer not available with device: WindowsGraphicsDevice[type Windows, connection decon, unitID 0, handle 0x0]

Does anyone have any ideas about this?

Thanks.
Reply | Threaded
Open this post in threaded view
|

Re: GLPbuffer doesn't work in Remote Desktop?

gouessej
Administrator
Hi

In my humble opinion, it is not a bug. Some OpenGL features might not work on a remote desktop.
Julien Gouesse | Personal blog | Website
Reply | Threaded
Open this post in threaded view
|

Re: GLPbuffer doesn't work in Remote Desktop?

Sven Gothel
Administrator
On 11/14/2012 01:56 AM, gouessej [via jogamp] wrote:
> Hi
>
> In my humble opinion, it is not a bug. Some OpenGL features might not work on
> a remote desktop.

Yup - it depends on the GLX protocol.

Note that pbuffer usually refers to something offscreen (local?) anyways,
never tried pbuffer remotely ..

Best experience w/ 'commercial grade' GLX/OpenGL I had was w/ NV drivers,
sad to say .. but that's my experience so far.

~Sven



signature.asc (907 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: GLPbuffer doesn't work in Remote Desktop?

cznlzq
Thanks for you guys reply.

Then I'm wondering besides GLPbuffer,
is there any alternative for the offScreen rendering?

Thanks.

Reply | Threaded
Open this post in threaded view
|

Re: GLPbuffer doesn't work in Remote Desktop?

gouessej
Administrator
You can use PBO.
Julien Gouesse | Personal blog | Website
Reply | Threaded
Open this post in threaded view
|

Re: GLPbuffer doesn't work in Remote Desktop?

Sven Gothel
Administrator
On 11/16/2012 12:31 AM, gouessej [via jogamp] wrote:
> You can use PBO.

FBO you mean ?

~Sven

> Julien Gouesse


signature.asc (909 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: GLPbuffer doesn't work in Remote Desktop?

gouessej
Administrator
Yes, sorry for the confusion.
Julien Gouesse | Personal blog | Website
Reply | Threaded
Open this post in threaded view
|

Re: GLPbuffer doesn't work in Remote Desktop?

cznlzq

Any links or JOGL examples for the FBO?

Thanks.
Reply | Threaded
Open this post in threaded view
|

Re: GLPbuffer doesn't work in Remote Desktop?

gouessej
Administrator
You can use this:
GLDrawableFactory.getFactory(GLProfile.getMaxFixedFunc(true)).createOffscreenAutoDrawable(null, caps, null, width, height, null);
Julien Gouesse | Personal blog | Website
Reply | Threaded
Open this post in threaded view
|

Re: GLPbuffer doesn't work in Remote Desktop?

cznlzq

I used the PBuffer to do some offscreen rendering to generate some images without showing the JComponent visible.

I'm not sure the FBO can achieve that as well.

From the name "Frame Buffer Object", it looks like that
I have to draw out the "frame" and then I can use the offscreen rendering.

Please correct me if I got wrong.

Thank you.