GLX data Copying

I am very new to GLX, i have created a xwindow as a drawable, i have a glxpixmap, i need to copy a bytearray data to this pixmap.
Is there any mechanism by which i can do this.

Can you show some code ?

Have you looked at XCopyArea?

Also, if you don’t need the window, you can create your GLXContext to target the pixmap directly.

I looked at XCopyArea, it says both drawables to be of same root window, my drawable is window.
I did one thing now by creating a XcreatepixmapfromBitmap, then copying, but it looks it would be very costly. My code architecture is such that i can use window only as drawable. So looking out for some thing which can directly copy the data into this window.

I dug up a Green Book (“OpenGL Programming for the X Window System”) and it describes rendering into XPixmaps (not what you want exactly, but potentially useful).

Basically, glXCreateContext, XCreatePixmap to create an XPixmap, pass that to glXCreateGLXPixmap to create a GLXPixmap wrapper around the XPixmap, and then glXMakeCurrent on the GLXPixmap to make it active for rendering.

You might be able to use this to copy window data off to a PBO or somewhere, switch to the GLXPixmap, and then copy the data back to it. Or possibly copy between contexts with sharing enabled.

Here’s the paraphrased code snippets:

cx = glXCreateContext( dpy, vi, NULL, False );
if ( !cx )
pmap = XCreatePixmap( dpy, RootWindow( dpy, vi->screen ), imageWidth, imageHeight, vi->depth );
glxpmap = GLXCreateGLXPixmap( dpy, vi, pmap );
glXMakeCurrent( dpy, glxpmap, cx );

i am trying by making making current context to GLX ,at that time my process is giving a segmentation fault.
I also tried by creating a ximage and then putting that image into the pixmap and then doing a xcopy to the window, but my xcopy is giving a bad request.

Any Idea when XCopyArea generates bad request ?

Are you certain than the pmap and glxpmap returned values are valids ?
(the requested vi->depth can for example not to be handled by the XCreatePixmap and/or GLXCreateGLXPixmap funcs)
[I doubt that this can be this but in case of …]

Yes it looks to me that pmap generated is fine, is there any way to cross check that ?

Where is your XCopyArea ?

Can you give a little more code ?
(something such as CUED - X Windows Version 11.5: Events: Input from a Window for example)

This topic was automatically closed 183 days after the last reply. New replies are no longer allowed.