diff options
author | Michel Dänzer <michel@tungstengraphics.com> | 2007-05-22 10:51:53 +0200 |
---|---|---|
committer | Michel Dänzer <michel@tungstengraphics.com> | 2007-05-22 10:51:53 +0200 |
commit | 6324bfc468f7a645d2fee59f1c921a4328a4639f (patch) | |
tree | 4af1f10313cddc14b68de9e4cc530dbb86191b98 /GL/glx/glxdrawable.h | |
parent | 5006d08d7fc56d3d380cc6b75297f94e8594eb54 (diff) |
AIGLX: Zero-copy texture-from-pixmap.
When available, use the 2D driver texOffsetStart hook and the 3D driver
setTexOffset hook to save the overhead of passing the pixmap data to
glTex(Sub)Image.
The basic idea is to update the driver specific 'offset' for bound pixmaps
before dispatching a GLX render request and to flush immediately afterwards
if there are any pixmaps bound. This should ensure that the 3D driver can
use pixmaps for texturing directly regardless of the X server moving them
around.
Diffstat (limited to 'GL/glx/glxdrawable.h')
-rw-r--r-- | GL/glx/glxdrawable.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/GL/glx/glxdrawable.h b/GL/glx/glxdrawable.h index 20e9b437f..6500cc770 100644 --- a/GL/glx/glxdrawable.h +++ b/GL/glx/glxdrawable.h @@ -42,6 +42,10 @@ #include <damage.h> +#ifdef XF86DRI +#include <GL/internal/dri_interface.h> +#endif + typedef struct { DrawablePtr pDraw; @@ -50,7 +54,12 @@ typedef struct { ScreenPtr pScreen; Bool idExists; int refcnt; +#ifdef XF86DRI DamagePtr pDamage; + __DRIcontext *pDRICtx; + GLint texname; + unsigned long offset; +#endif } __GLXpixmap; struct __GLXdrawable { |