if( !glt->dirtytexnum && glt->flags & GLTEXF_DYNAMIC ) {
glt->dirtytexnum = glt->texnum;
// mark it as dirty, so R_RealGetTexture gets called
- glt->texnum = -1;
+ glt->texnum = 0;
}
}
else
Host_Error("R_FreeTexture: texture \"%s\" not linked in pool", glt->identifier);
- if (glt->texnum)
+ if (!(glt->flags & GLTEXF_UPLOAD))
{
CHECKGLERROR
qglDeleteTextures(1, (GLuint *)&glt->texnum);CHECKGLERROR
glt->glformat = texinfo->glformat;
glt->bytesperpixel = texinfo->internalbytesperpixel;
glt->sides = glt->texturetype == GLTEXTURETYPE_CUBEMAP ? 6 : 1;
- glt->texnum = -1;
+ glt->texnum = 0;
// init the dynamic texture attributes, too [11/22/2007 Black]
glt->dirtytexnum = 0;
glt->updatecallback = NULL;
GL_Texture_CalcImageSize(glt->texturetype, glt->flags, glt->inputwidth, glt->inputheight, glt->inputdepth, &glt->tilewidth, &glt->tileheight, &glt->tiledepth);
R_PrecacheTexture(glt);
+ // texture converting and uploading can take a while, so make sure we're sending keepalives
+ CL_KeepaliveMessage(false);
+
return (rtexture_t *)glt;
}