diff --git a/src/client/refresh/files/light.c b/src/client/refresh/files/light.c index ac04919c..304c0ea7 100644 --- a/src/client/refresh/files/light.c +++ b/src/client/refresh/files/light.c @@ -294,7 +294,7 @@ R_SetCacheState(msurface_t *surf, const refdef_t *refdef) static void R_AddDynamicLights(const msurface_t *surf, const refdef_t *r_newrefdef, - float *s_blocklights, const float *s_blocklights_max) + float *s_blocklights) { int lnum; int smax, tmax; @@ -380,7 +380,7 @@ R_AddDynamicLights(const msurface_t *surf, const refdef_t *r_newrefdef, fdist = td + (sd >> 1); } - if ((fdist < fminlight) && (plightdest < (s_blocklights_max - 3))) + if (fdist < fminlight) { float diff = frad - fdist; int j; @@ -492,7 +492,7 @@ R_GetTemporaryLMBuffer(size_t size) } static void -R_StoreLightMap(byte *dest, int stride, const byte *destmax, int smax, int tmax) +R_StoreLightMap(byte *dest, int stride, int smax, int tmax) { float *bl; int i; @@ -501,12 +501,6 @@ R_StoreLightMap(byte *dest, int stride, const byte *destmax, int smax, int tmax) stride -= (smax << 2); bl = s_blocklights; - if ((dest + (stride * (tmax - 1)) + smax * LIGHTMAP_BYTES) > destmax) - { - Com_Error(ERR_DROP, "%s destination too small for lightmap %d > " YQ2_COM_PRIdS, - __func__, (stride * (tmax - 1)) + smax * LIGHTMAP_BYTES, destmax - dest); - } - for (i = 0; i < tmax; i++, dest += stride) { int j; @@ -583,8 +577,8 @@ R_StoreLightMap(byte *dest, int stride, const byte *destmax, int smax, int tmax) * Combine and scale multiple lightmaps into the floating format in blocklights */ void -R_BuildLightMap(const msurface_t *surf, byte *dest, int stride, const byte *destmax, - const refdef_t *r_newrefdef, float modulate, int r_framecount) +R_BuildLightMap(const msurface_t *surf, byte *dest, int stride, const refdef_t *r_newrefdef, + float modulate, int r_framecount) { int smax, tmax; int i, size, numlightmaps; @@ -604,11 +598,6 @@ R_BuildLightMap(const msurface_t *surf, byte *dest, int stride, const byte *dest R_ResizeTemporaryLMBuffer(size * 3); - if ((s_blocklights + size * 3) >= s_blocklights_max) - { - Com_Error(ERR_DROP, "%s temporary blocklights too small for lightmap", __func__); - } - /* set to full bright if no light data */ if (!surf->samples) { @@ -617,7 +606,7 @@ R_BuildLightMap(const msurface_t *surf, byte *dest, int stride, const byte *dest s_blocklights[i] = 255; } - R_StoreLightMap(dest, stride, destmax, smax, tmax); + R_StoreLightMap(dest, stride, smax, tmax); return; } @@ -712,10 +701,10 @@ R_BuildLightMap(const msurface_t *surf, byte *dest, int stride, const byte *dest /* add all the dynamic lights */ if (surf->dlightframe == r_framecount) { - R_AddDynamicLights(surf, r_newrefdef, s_blocklights, s_blocklights_max); + R_AddDynamicLights(surf, r_newrefdef, s_blocklights); } - R_StoreLightMap(dest, stride, destmax, smax, tmax); + R_StoreLightMap(dest, stride, smax, tmax); } static void diff --git a/src/client/refresh/gl1/gl1_lightmap.c b/src/client/refresh/gl1/gl1_lightmap.c index d64948c9..551eb9a3 100644 --- a/src/client/refresh/gl1/gl1_lightmap.c +++ b/src/client/refresh/gl1/gl1_lightmap.c @@ -262,7 +262,6 @@ LM_CreateSurfaceLightmap(msurface_t *surf) R_SetCacheState(surf, &r_newrefdef); R_BuildLightMap(surf, base, BLOCK_WIDTH * LIGHTMAP_BYTES, - gl_lms.lightmap_buffer + sizeof(gl_lms.lightmap_buffer), &r_newrefdef, r_modulate->value, r_framecount); } diff --git a/src/client/refresh/gl1/gl1_surf.c b/src/client/refresh/gl1/gl1_surf.c index b65acc70..94ce3633 100644 --- a/src/client/refresh/gl1/gl1_surf.c +++ b/src/client/refresh/gl1/gl1_surf.c @@ -324,7 +324,6 @@ R_BlendLightmaps(const model_t *currentmodel) surf->dlight_s) * LIGHTMAP_BYTES; R_BuildLightMap(surf, base, BLOCK_WIDTH * LIGHTMAP_BYTES, - gl_lms.lightmap_buffer + sizeof(gl_lms.lightmap_buffer), &r_newrefdef, r_modulate->value, r_framecount); } else @@ -372,7 +371,6 @@ R_BlendLightmaps(const model_t *currentmodel) surf->dlight_s) * LIGHTMAP_BYTES; R_BuildLightMap(surf, base, BLOCK_WIDTH * LIGHTMAP_BYTES, - gl_lms.lightmap_buffer + sizeof(gl_lms.lightmap_buffer), &r_newrefdef, r_modulate->value, r_framecount); } } @@ -501,7 +499,6 @@ R_RenderBrushPoly(const entity_t *currententity, msurface_t *fa) temp = R_GetTemporaryLMBuffer(size); R_BuildLightMap(fa, temp, smax * 4, - temp + size, &r_newrefdef, r_modulate->value, r_framecount); R_SetCacheState(fa, &r_newrefdef); diff --git a/src/client/refresh/ref_shared.h b/src/client/refresh/ref_shared.h index 9820e476..66f81e84 100644 --- a/src/client/refresh/ref_shared.h +++ b/src/client/refresh/ref_shared.h @@ -404,7 +404,7 @@ extern bspxlightgrid_t *Mod_LoadBSPXLightGrid(const bspx_header_t *bspx_header, extern void R_LightPoint(const bspxlightgrid_t *grid, const entity_t *currententity, refdef_t *refdef, const msurface_t *surfaces, const mnode_t *nodes, vec3_t p, vec3_t color, float modulate, vec3_t lightspot); extern void R_SetCacheState(msurface_t *surf, const refdef_t *r_newrefdef); -extern void R_BuildLightMap(const msurface_t *surf, byte *dest, int stride, const byte *destmax, +extern void R_BuildLightMap(const msurface_t *surf, byte *dest, int stride, const refdef_t *r_newrefdef, float modulate, int r_framecount); extern void R_InitTemporaryLMBuffer(void); extern void R_FreeTemporaryLMBuffer(void); diff --git a/src/client/refresh/vk/vk_lightmap.c b/src/client/refresh/vk/vk_lightmap.c index 130c7a71..84d0242e 100644 --- a/src/client/refresh/vk/vk_lightmap.c +++ b/src/client/refresh/vk/vk_lightmap.c @@ -245,7 +245,6 @@ LM_CreateSurfaceLightmap(msurface_t *surf) R_SetCacheState(surf, &r_newrefdef); R_BuildLightMap(surf, base, BLOCK_WIDTH * LIGHTMAP_BYTES, - vk_lms.lightmap_buffer + sizeof(vk_lms.lightmap_buffer), &r_newrefdef, r_modulate->value, r_framecount); } diff --git a/src/client/refresh/vk/vk_surf.c b/src/client/refresh/vk/vk_surf.c index bdb4ec26..5a70f1a4 100644 --- a/src/client/refresh/vk/vk_surf.c +++ b/src/client/refresh/vk/vk_surf.c @@ -249,7 +249,6 @@ R_RenderBrushPoly(msurface_t *fa, const float *modelMatrix, float alpha, temp = R_GetTemporaryLMBuffer(size); R_BuildLightMap(fa, temp, smax * 4, - temp + size, &r_newrefdef, r_modulate->value, r_framecount); R_SetCacheState(fa, &r_newrefdef); @@ -457,7 +456,6 @@ Vk_RenderLightmappedPoly(msurface_t *surf, const float *modelMatrix, float alpha temp = R_GetTemporaryLMBuffer(size); R_BuildLightMap(surf, temp, smax * 4, - temp + size, &r_newrefdef, r_modulate->value, r_framecount); if ((surf->styles[map] >= 32 || surf->styles[map] == 0) && (surf->dlightframe != r_framecount))