Fix DRI2 texture target for GLX_EXT_texture_from_pixmap.

Thanks to Dennis Kasprzyk for pointing it out and for reminding me to
commit it.
This commit is contained in:
Kristian Høgsberg 2008-03-07 14:12:28 -05:00
parent 3bf7ff7032
commit 9abaad115c

View File

@ -216,8 +216,6 @@ __glXDRIcontextForceCurrent(__GLXcontext *baseContext)
#ifdef __DRI_TEX_BUFFER #ifdef __DRI_TEX_BUFFER
#define isPowerOfTwo(n) (((n) & ((n) - 1 )) == 0)
static int static int
__glXDRIbindTexImage(__GLXcontext *baseContext, __glXDRIbindTexImage(__GLXcontext *baseContext,
int buffer, int buffer,
@ -228,26 +226,17 @@ __glXDRIbindTexImage(__GLXcontext *baseContext,
PixmapPtr pixmap; PixmapPtr pixmap;
__GLXDRIcontext *context = (__GLXDRIcontext *) baseContext; __GLXDRIcontext *context = (__GLXDRIcontext *) baseContext;
unsigned int flags; unsigned int flags;
int w, h, target;
if (screen->texBuffer == NULL) if (screen->texBuffer == NULL)
return Success; return Success;
pixmap = (PixmapPtr) glxPixmap->pDraw; pixmap = (PixmapPtr) glxPixmap->pDraw;
w = pixmap->drawable.width;
h = pixmap->drawable.height;
if (!isPowerOfTwo(w) || !isPowerOfTwo(h))
target = GL_TEXTURE_RECTANGLE_ARB;
else
target = GL_TEXTURE_2D;
screen->texBuffer->setTexBuffer(&context->driContext, screen->texBuffer->setTexBuffer(&context->driContext,
target, glxPixmap->target,
DRI2GetPixmapHandle(pixmap, &flags), DRI2GetPixmapHandle(pixmap, &flags),
pixmap->drawable.depth, pixmap->drawable.depth,
pixmap->devKind, pixmap->devKind,
h); pixmap->drawable.height);
return Success; return Success;
} }