X-Git-Url: http://git.xonotic.org/?p=xonotic%2Fdarkplaces.git;a=blobdiff_plain;f=meshqueue.c;h=af8c3ea5faa3607cbd846c3dcbc94b8f1ada021a;hp=69bb69198e2fcc65406b5e3324f6d855535d831e;hb=fbddb742e3f36efc25a5e701b2e29e14d24e5d75;hpb=93ee242c05da6c2b71a6eaf4e393435988ca6c5a diff --git a/meshqueue.c b/meshqueue.c index 69bb6919..af8c3ea5 100644 --- a/meshqueue.c +++ b/meshqueue.c @@ -1,4 +1,3 @@ - #include "quakedef.h" #include "meshqueue.h" @@ -10,7 +9,7 @@ typedef struct meshqueue_s int surfacenumber; const rtlight_t *rtlight; float dist; - meshqueue_sortcategory_t category; + dptransparentsortcategory_t category; } meshqueue_t; @@ -31,7 +30,7 @@ void R_MeshQueue_BeginScene(void) mqt_viewmaxdist = 0; } -void R_MeshQueue_AddTransparent(meshqueue_sortcategory_t category, const vec3_t center, void (*callback)(const entity_render_t *ent, const rtlight_t *rtlight, int numsurfaces, int *surfacelist), const entity_render_t *ent, int surfacenumber, const rtlight_t *rtlight) +void R_MeshQueue_AddTransparent(dptransparentsortcategory_t category, const vec3_t center, void (*callback)(const entity_render_t *ent, const rtlight_t *rtlight, int numsurfaces, int *surfacelist), const entity_render_t *ent, int surfacenumber, const rtlight_t *rtlight) { meshqueue_t *mq; if (mqt_count >= mqt_total || !mqt_array) @@ -76,7 +75,7 @@ void R_MeshQueue_RenderTransparent(void) // check for bad cvars if (r_transparent_sortarraysize.integer < 1 || r_transparent_sortarraysize.integer > 32768) Cvar_SetValueQuick(&r_transparent_sortarraysize, bound(1, r_transparent_sortarraysize.integer, 32768)); - if (r_transparent_sortmindist.integer < 1 || r_transparent_sortmindist.integer >= r_transparent_sortmaxdist.integer) + if (r_transparent_sortmindist.integer < 0 || r_transparent_sortmindist.integer >= r_transparent_sortmaxdist.integer) Cvar_SetValueQuick(&r_transparent_sortmindist, 0); if (r_transparent_sortmaxdist.integer < r_transparent_sortmindist.integer || r_transparent_sortmaxdist.integer > 32768) Cvar_SetValueQuick(&r_transparent_sortmaxdist, bound(r_transparent_sortmindist.integer, r_transparent_sortmaxdist.integer, 32768)); @@ -87,14 +86,14 @@ void R_MeshQueue_RenderTransparent(void) trans_sortarraysize = r_transparent_sortarraysize.integer; if (trans_hash) Mem_Free(trans_hash); - trans_hash = (meshqueue_t **)Mem_Alloc(cls.permanentmempool, sizeof(trans_hash) * trans_sortarraysize); + trans_hash = (meshqueue_t **)Mem_Alloc(cls.permanentmempool, sizeof(meshqueue_t *) * trans_sortarraysize); if (trans_hashpointer) Mem_Free(trans_hashpointer); - trans_hashpointer = (meshqueue_t ***)Mem_Alloc(cls.permanentmempool, sizeof(trans_hashpointer) * trans_sortarraysize); + trans_hashpointer = (meshqueue_t ***)Mem_Alloc(cls.permanentmempool, sizeof(meshqueue_t **) * trans_sortarraysize); } // build index - memset(trans_hash, 0, sizeof(trans_hash) * trans_sortarraysize); + memset(trans_hash, 0, sizeof(meshqueue_t *) * trans_sortarraysize); for (i = 0; i < trans_sortarraysize; i++) trans_hashpointer[i] = &trans_hash[i]; distscale = (trans_sortarraysize - 1) / min(mqt_viewmaxdist, r_transparent_sortmaxdist.integer); @@ -104,14 +103,14 @@ void R_MeshQueue_RenderTransparent(void) switch(mqt->category) { default: - case MESHQUEUE_SORT_HUD: + case TRANSPARENTSORT_HUD: hashindex = 0; break; - case MESHQUEUE_SORT_DISTANCE: + case TRANSPARENTSORT_DISTANCE: // this could use a reduced range if we need more categories hashindex = bound(0, (int)(bound(0, mqt->dist - r_transparent_sortmindist.integer, r_transparent_sortmaxdist.integer) * distscale), maxhashindex); break; - case MESHQUEUE_SORT_SKY: + case TRANSPARENTSORT_SKY: hashindex = maxhashindex; break; }