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 3 of 3

Thread: OpenGL ES and PBO ?

Hybrid View

  1. #1
    Junior Member Newbie
    Join Date
    Sep 2009
    Posts
    13

    OpenGL ES and PBO ?

    Hi,

    With OpenGL you can do asynchronous texture transfer using a PBO, as described here: http://www.opengl.org/registry/specs...fer_object.txt

    Code :
    glGenBuffers(1, &texBuffer);
    glBindBuffer(GL_PIXEL_UNPACK_BUFFER_ARB, texBuffer);
    glBufferData(GL_PIXEL_UNPACK_BUFFER_ARB, texSize, NULL, GL_STREAM_DRAW);
    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, texWidth, texHeight, 0, GL_BGRA, GL_UNSIGNED_BYTE, NULL);

    However there is no such thing as "GL_PIXEL_UNPACK_BUFFER_ARB" on OpenGL ES. Is it possible to use PBO for texture transfer on OpenGL ES ? I can only find example with VBO.

  2. #2
    Advanced Member Frequent Contributor
    Join Date
    Dec 2007
    Location
    Hungary
    Posts
    985
    PBOs have been added to OpenGL ES with version 3.0, which is not yet widely supported, however, you can check whether your particular ES 2.0 implementation supports the ARB_pixel_buffer_object or EXT_pixel_buffer_object extension. Just because your headers don't define GL_PIXEL_UNPACK_BUFFER_ARB it doesn't necessarily mean that your target platform doesn't support it. Check the extension strings.

    Unfortunately, however, if your target platform doesn't support it then you have to stick with regular, client data uploads.
    Disclaimer: This is my personal profile. Whatever I write here is my personal opinion and none of my statements or speculations are anyhow related to my employer and as such should not be treated as accurate or valid and in no case should those be considered to represent the opinions of my employer.
    Technical Blog: http://www.rastergrid.com/blog/

  3. #3
    Junior Member Newbie
    Join Date
    Sep 2009
    Posts
    13
    Ah thanks for the tip !
    I'm indeed using OpenGL ES 2.0, but I'm using it on desktop with a GeForce GTX 260 so maybe there's a way to use it anyhow.
    However it doesn't list the pixel_buffer_object extension.. Maybe because I'm using the Angle OpenGL implementation from Qt 5 :/

Posting Permissions

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