From 441b49231e8d4c03c10a8d800df4a29c3b916154 Mon Sep 17 00:00:00 2001 From: havoc Date: Mon, 21 Apr 2003 10:05:18 +0000 Subject: [PATCH] added TEXF_CLAMP flag on model and sprite textures (software quake did not support out of bounds texcoords, so repeat is clearly unnecessary and even undesirable) git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@2973 d7cf8633-e32d-0410-b094-e92efae38249 --- model_alias.c | 10 +++++----- model_sprite.c | 6 +++--- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/model_alias.c b/model_alias.c index 417c7832..6ad781b1 100644 --- a/model_alias.c +++ b/model_alias.c @@ -427,8 +427,8 @@ void Mod_LoadQ1AliasModel (model_t *mod, void *buffer) sprintf (name, "%s_%i_%i", loadmodel->name, i, j); else sprintf (name, "%s_%i", loadmodel->name, i); - if (!Mod_LoadSkinFrame(loadmodel->skinframes + totalskins, name, (r_mipskins.integer ? TEXF_MIPMAP : 0) | TEXF_ALPHA, true, false, true)) - Mod_LoadSkinFrame_Internal(loadmodel->skinframes + totalskins, name, (r_mipskins.integer ? TEXF_MIPMAP : 0) | TEXF_ALPHA, true, false, true, (qbyte *)datapointer, skinwidth, skinheight); + if (!Mod_LoadSkinFrame(loadmodel->skinframes + totalskins, name, (r_mipskins.integer ? TEXF_MIPMAP : 0) | TEXF_CLAMP | TEXF_ALPHA, true, false, true)) + Mod_LoadSkinFrame_Internal(loadmodel->skinframes + totalskins, name, (r_mipskins.integer ? TEXF_MIPMAP : 0) | TEXF_CLAMP | TEXF_ALPHA, true, false, true, (qbyte *)datapointer, skinwidth, skinheight); datapointer += skinwidth * skinheight; totalskins++; } @@ -438,7 +438,7 @@ void Mod_LoadQ1AliasModel (model_t *mod, void *buffer) for (;;) { sprintf (name, "%s_%i", loadmodel->name, loadmodel->numskins); - if (Mod_LoadSkinFrame (&tempskinframe, name, (r_mipskins.integer ? TEXF_MIPMAP : 0) | TEXF_ALPHA, true, false, true)) + if (Mod_LoadSkinFrame (&tempskinframe, name, (r_mipskins.integer ? TEXF_MIPMAP : 0) | TEXF_CLAMP | TEXF_ALPHA, true, false, true)) { // expand the arrays to make room tempskinscenes = loadmodel->skinscenes; @@ -627,7 +627,7 @@ void Mod_LoadQ2AliasModel (model_t *mod, void *buffer) // skins found (most likely not a player model) loadmodel->skinframes = Mem_Alloc(loadmodel->mempool, sizeof(skinframe_t) * loadmodel->numskins); for (i = 0;i < loadmodel->numskins;i++, inskin += MD2_SKINNAME) - Mod_LoadSkinFrame (loadmodel->skinframes + i, inskin, (r_mipskins.integer ? TEXF_MIPMAP : 0) | TEXF_ALPHA | TEXF_PRECACHE, true, false, true); + Mod_LoadSkinFrame (loadmodel->skinframes + i, inskin, (r_mipskins.integer ? TEXF_MIPMAP : 0) | TEXF_ALPHA | TEXF_CLAMP | TEXF_PRECACHE, true, false, true); } else { @@ -849,7 +849,7 @@ void Mod_LoadQ3AliasModel(model_t *mod, void *buffer) memset(&tempskinframe, 0, sizeof(tempskinframe)); if (LittleLong(pinmesh->num_shaders) >= 1 && ((md3shader_t *)((qbyte *) pinmesh + pinmesh->lump_shaders))->name[0]) - Mod_LoadSkinFrame (&tempskinframe, ((md3shader_t *)((qbyte *) pinmesh + pinmesh->lump_shaders))->name, (r_mipskins.integer ? TEXF_MIPMAP : 0) | TEXF_ALPHA | TEXF_PRECACHE, true, false, true); + Mod_LoadSkinFrame (&tempskinframe, ((md3shader_t *)((qbyte *) pinmesh + pinmesh->lump_shaders))->name, (r_mipskins.integer ? TEXF_MIPMAP : 0) | TEXF_ALPHA | TEXF_CLAMP | TEXF_PRECACHE, true, false, true); Mod_ValidateElements(mesh->data_element3i, mesh->num_triangles, mesh->num_vertices, __FILE__, __LINE__); Mod_BuildTriangleNeighbors(mesh->data_neighbor3i, mesh->data_element3i, mesh->num_triangles); Mod_BuildAliasSkinFromSkinFrame(mesh->data_skins, &tempskinframe); diff --git a/model_sprite.c b/model_sprite.c index edcec466..989cfa7b 100644 --- a/model_sprite.c +++ b/model_sprite.c @@ -182,7 +182,7 @@ static void Mod_Sprite_SharedSetup(qbyte *datapointer, int version, int *palette sprintf (name, "%s_%i_%i", tempname, i, j); else sprintf (name, "%s_%i", tempname, i); - loadmodel->sprdata_frames[realframes].texture = loadtextureimagewithmask(loadmodel->texturepool, name, 0, 0, false, (r_mipsprites.integer ? TEXF_MIPMAP : 0) | TEXF_ALPHA | TEXF_PRECACHE); + loadmodel->sprdata_frames[realframes].texture = loadtextureimagewithmask(loadmodel->texturepool, name, 0, 0, false, (r_mipsprites.integer ? TEXF_MIPMAP : 0) | TEXF_ALPHA | TEXF_CLAMP | TEXF_PRECACHE); loadmodel->sprdata_frames[realframes].fogtexture = image_masktex; if (!loadmodel->sprdata_frames[realframes].texture) @@ -193,7 +193,7 @@ static void Mod_Sprite_SharedSetup(qbyte *datapointer, int version, int *palette else //if (version == SPRITE_VERSION || version == SPRITEHL_VERSION) Image_Copy8bitRGBA(datapointer, pixbuf, width*height, palette); - loadmodel->sprdata_frames[realframes].texture = R_LoadTexture2D (loadmodel->texturepool, name, width, height, pixbuf, TEXTYPE_RGBA, TEXF_ALPHA | (r_mipsprites.integer ? TEXF_MIPMAP : 0) | TEXF_PRECACHE, NULL); + loadmodel->sprdata_frames[realframes].texture = R_LoadTexture2D (loadmodel->texturepool, name, width, height, pixbuf, TEXTYPE_RGBA, TEXF_ALPHA | (r_mipsprites.integer ? TEXF_MIPMAP : 0) | TEXF_CLAMP | TEXF_PRECACHE, NULL); // make fog version (just alpha) for (k = 0;k < width*height;k++) @@ -206,7 +206,7 @@ static void Mod_Sprite_SharedSetup(qbyte *datapointer, int version, int *palette sprintf (name, "%s_%i_%ifog", tempname, i, j); else sprintf (name, "%s_%ifog", tempname, i); - loadmodel->sprdata_frames[realframes].fogtexture = R_LoadTexture2D (loadmodel->texturepool, name, width, height, pixbuf, TEXTYPE_RGBA, TEXF_ALPHA | (r_mipsprites.integer ? TEXF_MIPMAP : 0) | TEXF_PRECACHE, NULL); + loadmodel->sprdata_frames[realframes].fogtexture = R_LoadTexture2D (loadmodel->texturepool, name, width, height, pixbuf, TEXTYPE_RGBA, TEXF_ALPHA | (r_mipsprites.integer ? TEXF_MIPMAP : 0) | TEXF_CLAMP | TEXF_PRECACHE, NULL); Mem_Free(pixbuf); } -- 2.39.2