__glXDRIbindTexImage: Fail if no texture bound to pixmap's texture target.
We would most likely crash somewhere in Mesa if we tried to continue in this case.
This commit is contained in:
parent
3305d17195
commit
0958505961
|
@ -374,17 +374,25 @@ __glXDRIbindTexImage(__GLXcontext *baseContext,
|
||||||
{
|
{
|
||||||
RegionPtr pRegion = NULL;
|
RegionPtr pRegion = NULL;
|
||||||
PixmapPtr pixmap;
|
PixmapPtr pixmap;
|
||||||
int bpp, override = 0;
|
int bpp, override = 0, texname;
|
||||||
GLenum format, type;
|
GLenum format, type;
|
||||||
ScreenPtr pScreen = glxPixmap->pScreen;
|
ScreenPtr pScreen = glxPixmap->pScreen;
|
||||||
__GLXDRIscreen * const screen =
|
__GLXDRIscreen * const screen =
|
||||||
(__GLXDRIscreen *) __glXgetActiveScreen(pScreen->myNum);
|
(__GLXDRIscreen *) __glXgetActiveScreen(pScreen->myNum);
|
||||||
|
|
||||||
|
CALL_GetIntegerv(GET_DISPATCH(), (glxPixmap->target == GL_TEXTURE_2D ?
|
||||||
|
GL_TEXTURE_BINDING_2D :
|
||||||
|
GL_TEXTURE_BINDING_RECTANGLE_NV,
|
||||||
|
&texname));
|
||||||
|
|
||||||
|
if (!texname)
|
||||||
|
return __glXError(GLXBadContextState);
|
||||||
|
|
||||||
pixmap = (PixmapPtr) glxPixmap->pDraw;
|
pixmap = (PixmapPtr) glxPixmap->pDraw;
|
||||||
|
|
||||||
if (screen->texOffsetStart && screen->driScreen.setTexOffset) {
|
if (screen->texOffsetStart && screen->driScreen.setTexOffset) {
|
||||||
__GLXpixmap **texOffsetOverride = screen->texOffsetOverride;
|
__GLXpixmap **texOffsetOverride = screen->texOffsetOverride;
|
||||||
int i, firstEmpty = 16, texname;
|
int i, firstEmpty = 16;
|
||||||
|
|
||||||
for (i = 0; i < 16; i++) {
|
for (i = 0; i < 16; i++) {
|
||||||
if (texOffsetOverride[i] == glxPixmap)
|
if (texOffsetOverride[i] == glxPixmap)
|
||||||
|
@ -409,11 +417,6 @@ alreadyin:
|
||||||
|
|
||||||
glxPixmap->pDRICtx = &((__GLXDRIcontext*)baseContext)->driContext;
|
glxPixmap->pDRICtx = &((__GLXDRIcontext*)baseContext)->driContext;
|
||||||
|
|
||||||
CALL_GetIntegerv(GET_DISPATCH(), (glxPixmap->target == GL_TEXTURE_2D ?
|
|
||||||
GL_TEXTURE_BINDING_2D :
|
|
||||||
GL_TEXTURE_BINDING_RECTANGLE_NV,
|
|
||||||
&texname));
|
|
||||||
|
|
||||||
if (texname == glxPixmap->texname)
|
if (texname == glxPixmap->texname)
|
||||||
return Success;
|
return Success;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue