Part of the Khronos Group
OpenGL.org

The Industry's Foundation for High Performance Graphics

from games to virtual reality, mobile phones to supercomputers

Results 1 to 10 of 10

Thread: GLX data Copying

  1. #1
    Junior Member Newbie
    Join Date
    Feb 2013
    Posts
    5

    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.
    Last edited by Tan_has; 02-05-2013 at 09:52 PM.

  2. #2
    Can you show some code ?

  3. #3
    Senior Member OpenGL Guru Dark Photon's Avatar
    Join Date
    Oct 2004
    Location
    Druidia
    Posts
    3,211
    Have you looked at XCopyArea?

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

  4. #4
    Junior Member Newbie
    Join Date
    Feb 2013
    Posts
    5
    Thanks!!!
    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.

  5. #5
    Senior Member OpenGL Guru Dark Photon's Avatar
    Join Date
    Oct 2004
    Location
    Druidia
    Posts
    3,211
    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:

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

  6. #6
    Junior Member Newbie
    Join Date
    Feb 2013
    Posts
    5
    Thanks!!!...
    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.

  7. #7
    Junior Member Newbie
    Join Date
    Feb 2013
    Posts
    5
    Any Idea when XCopyArea generates bad request ?

  8. #8
    Member Regular Contributor
    Join Date
    Jan 2011
    Location
    Paris, France
    Posts
    250
    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 ...]
    Last edited by The Little Body; 02-18-2013 at 06:56 PM.
    @+
    Yannoo

  9. #9
    Junior Member Newbie
    Join Date
    Feb 2013
    Posts
    5
    Yes it looks to me that pmap generated is fine, is there any way to cross check that ?

  10. #10
    Member Regular Contributor
    Join Date
    Jan 2011
    Location
    Paris, France
    Posts
    250
    Where is your XCopyArea ?

    Can you give a little more code ?
    (something such as
    http://www-h.eng.cam.ac.uk/help/tpl/...R5/node25.html for example)
    @+
    Yannoo

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •