• Emmanuele Bassi's avatar
    gl: Add private glReadPixels() wrapper · f0317594
    Emmanuele Bassi authored
    For the software fallback path in gdk_cairo_draw_from_gl() we use
    glReadPixels() to read the contents of a framebuffer object in order to
    put it inside a Cairo image surface we can blend on the CPU. In order to
    do that, we use GL_PACK_ROW_LENGTH, which is only available in desktop
    GL, GLES 3.0, or if the GL_EXT_unpack_subimage extension is present.
    Older GLES 2.0 drivers would just be out of luck.
    
    Instead of bailing out, let's implement unpacking line by line, to
    adjust for the Cairo image surface stride, like we do when uploading
    textures.
    
    In order to avoid complicating an already big function, we should wrap
    our glReadPixels() call with our own wrapper that performs checks and
    calls the appropriate functions with the appropriate data.
    f0317594
Name
Last commit
Last update
build Loading commit data...
demos Loading commit data...
docs Loading commit data...
examples Loading commit data...
gdk Loading commit data...
gtk Loading commit data...
libgail-util Loading commit data...
m4 Loading commit data...
m4macros Loading commit data...
modules Loading commit data...
po Loading commit data...
po-properties Loading commit data...
tests Loading commit data...
testsuite Loading commit data...
AUTHORS Loading commit data...
COPYING Loading commit data...
HACKING Loading commit data...
INSTALL.in Loading commit data...
MAINTAINERS Loading commit data...
Makefile.am Loading commit data...
Makefile.decl Loading commit data...
NEWS Loading commit data...
NEWS.pre-1-0 Loading commit data...
README.commits Loading commit data...
README.in Loading commit data...
README.win32 Loading commit data...
acinclude.m4 Loading commit data...
autogen.sh Loading commit data...
config.h.win32.in Loading commit data...
configure.ac Loading commit data...
gail-3.0.pc.in Loading commit data...
gdk-3.0.pc.in Loading commit data...
git.mk Loading commit data...
gtk+-3.0.pc.in Loading commit data...
gtk+-unix-print-3.0.pc.in Loading commit data...
gtk+.doap Loading commit data...
gtk-zip.sh.in Loading commit data...
make-pot Loading commit data...
makefile.msc Loading commit data...
sanitize-la.sh Loading commit data...