From fff9bfcde8a1714c6d81f9d506596627ab61ce25 Mon Sep 17 00:00:00 2001 From: havoc Date: Fri, 6 Nov 2009 11:36:27 +0000 Subject: [PATCH] reworked R_SkinFrame_Purge handling to encapsulate all modules, not just the model system, this allows skinframes to be persistent across levels without being associated with a model git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@9429 d7cf8633-e32d-0410-b094-e92efae38249 --- model_shared.c | 10 ++++++---- r_modules.c | 2 ++ 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/model_shared.c b/model_shared.c index 963140bd..6ea5a859 100644 --- a/model_shared.c +++ b/model_shared.c @@ -91,21 +91,23 @@ static void mod_newmap(void) int nummodels = Mem_ExpandableArray_IndexRange(&models); dp_model_t *mod; - R_SkinFrame_PrepareForPurge(); for (i = 0;i < nummodels;i++) { - if ((mod = (dp_model_t*) Mem_ExpandableArray_RecordAtIndex(&models, i)) && mod->mempool && mod->data_textures) + if ((mod = (dp_model_t*) Mem_ExpandableArray_RecordAtIndex(&models, i)) && mod->mempool) { - for (j = 0;j < mod->num_textures;j++) + for (j = 0;j < mod->num_textures && mod->data_textures;j++) { for (k = 0;k < mod->data_textures[j].numskinframes;k++) R_SkinFrame_MarkUsed(mod->data_textures[j].skinframes[k]); for (k = 0;k < mod->data_textures[j].backgroundnumskinframes;k++) R_SkinFrame_MarkUsed(mod->data_textures[j].backgroundskinframes[k]); } + if (mod->brush.solidskyskinframe) + R_SkinFrame_MarkUsed(mod->brush.solidskyskinframe); + if (mod->brush.alphaskyskinframe) + R_SkinFrame_MarkUsed(mod->brush.alphaskyskinframe); } } - R_SkinFrame_Purge(); if (!cl_stainmaps_clearonload.integer) return; diff --git a/r_modules.c b/r_modules.c index df260db6..91221fc3 100644 --- a/r_modules.c +++ b/r_modules.c @@ -85,6 +85,7 @@ void R_Modules_Restart(void) void R_Modules_NewMap(void) { int i; + R_SkinFrame_PrepareForPurge(); for (i = 0;i < MAXRENDERMODULES;i++) { if (rendermodule[i].name == NULL) @@ -93,5 +94,6 @@ void R_Modules_NewMap(void) continue; rendermodule[i].newmap(); } + R_SkinFrame_Purge(); } -- 2.39.2