[renderer] Move some functions from plugins to main lib

One step in cleaning up vid_render_funcs.
This commit is contained in:
Bill Currie 2022-03-07 13:40:04 +09:00
parent 2a87983bf4
commit 2eae2e5d74
26 changed files with 76 additions and 129 deletions

View file

@ -96,10 +96,6 @@ typedef struct vid_render_funcs_s {
void (*Draw_Picf) (float x, float y, qpic_t *pic); void (*Draw_Picf) (float x, float y, qpic_t *pic);
void (*Draw_SubPic) (int x, int y, qpic_t *pic, int srcx, int srcy, int width, int height); void (*Draw_SubPic) (int x, int y, qpic_t *pic, int srcx, int srcy, int width, int height);
void (*SCR_SetFOV) (float fov);
void (*SCR_DrawRam) (void);
void (*SCR_DrawTurtle) (void);
void (*SCR_DrawPause) (void);
struct tex_s *(*SCR_CaptureBGR) (void); struct tex_s *(*SCR_CaptureBGR) (void);
struct tex_s *(*SCR_ScreenShot) (unsigned width, unsigned height); struct tex_s *(*SCR_ScreenShot) (unsigned width, unsigned height);
void (*SCR_DrawStringToSnap) (const char *s, struct tex_s *tex, void (*SCR_DrawStringToSnap) (const char *s, struct tex_s *tex,
@ -115,12 +111,7 @@ typedef struct vid_render_funcs_s {
void (*R_ClearState) (void); void (*R_ClearState) (void);
void (*R_LoadSkys) (const char *); void (*R_LoadSkys) (const char *);
void (*R_NewMap) (model_t *worldmodel, model_t **models, int num_models); void (*R_NewMap) (model_t *worldmodel, model_t **models, int num_models);
void (*R_AddEfrags) (mod_brush_t *brush, entity_t *ent);
void (*R_RemoveEfrags) (entity_t *ent);
void (*R_LineGraph) (int x, int y, int *h_vals, int count, int height); void (*R_LineGraph) (int x, int y, int *h_vals, int count, int height);
dlight_t *(*R_AllocDlight) (int key);
void (*R_MaxDlightsCheck) (struct cvar_s *var);
void (*R_DecayLights) (double frametime);
void (*R_ViewChanged) (void); void (*R_ViewChanged) (void);
void (*SCR_ScreenShot_f) (void); void (*SCR_ScreenShot_f) (void);

View file

@ -239,4 +239,10 @@ void R_LoadModule (struct vid_internal_s *vid_internal);
struct progs_s; struct progs_s;
void R_Progs_Init (struct progs_s *pr); void R_Progs_Init (struct progs_s *pr);
void R_AddEfrags (mod_brush_t *, entity_t *ent);
void R_RemoveEfrags (entity_t *ent);
dlight_t *R_AllocDlight (int key);
void R_MaxDlightsCheck (struct cvar_s *var);
void R_DecayLights (double frametime);
#endif//__QF_render_h #endif//__QF_render_h

View file

@ -32,6 +32,11 @@
struct transform_s; struct transform_s;
void SCR_Init (void); void SCR_Init (void);
void SCR_SetFOV (float fov);
void SCR_DrawRam (void);
void SCR_DrawTurtle (void);
void SCR_DrawPause (void);
typedef void (*SCR_Func)(void); typedef void (*SCR_Func)(void);
// scr_funcs is a null terminated array // scr_funcs is a null terminated array

View file

@ -62,9 +62,6 @@ struct psystem_s *sw_ParticleSystem (void);
struct psystem_s *sw32_ParticleSystem (void); struct psystem_s *sw32_ParticleSystem (void);
void R_RunParticles (float dT); void R_RunParticles (float dT);
void R_AddEfrags (mod_brush_t *, entity_t *ent);
void R_RemoveEfrags (entity_t *ent);
void R_NewMap (model_t *worldmodel, model_t **models, int num_models); void R_NewMap (model_t *worldmodel, model_t **models, int num_models);
// LordHavoc: relative bmodel lighting // LordHavoc: relative bmodel lighting

View file

@ -31,13 +31,9 @@
#ifndef __r_screen_h #ifndef __r_screen_h
#define __r_screen_h #define __r_screen_h
void SCR_DrawRam (void);
void SCR_DrawTurtle (void);
void SCR_DrawPause (void);
struct tex_s *SCR_CaptureBGR (void); struct tex_s *SCR_CaptureBGR (void);
struct tex_s *SCR_ScreenShot (unsigned width, unsigned height); struct tex_s *SCR_ScreenShot (unsigned width, unsigned height);
void SCR_DrawStringToSnap (const char *s, struct tex_s *tex, int x, int y); void SCR_DrawStringToSnap (const char *s, struct tex_s *tex, int x, int y);
void SCR_SetFOV (float fov);
void SCR_ScreenShot_f (void); void SCR_ScreenShot_f (void);
int MipColor (int r, int g, int b); int MipColor (int r, int g, int b);

View file

@ -64,7 +64,7 @@ CL_NewDlight (int key, vec4f_t org, int effects, byte glow_size,
return; return;
} }
dl = r_funcs->R_AllocDlight (key); dl = R_AllocDlight (key);
if (!dl) if (!dl)
return; return;
VectorCopy (org, dl->origin); VectorCopy (org, dl->origin);
@ -124,7 +124,7 @@ CL_ModelEffects (entity_t *ent, int num, int glow_color, double time)
// add automatic particle trails // add automatic particle trails
if (model->flags & EF_ROCKET) { if (model->flags & EF_ROCKET) {
dl = r_funcs->R_AllocDlight (num); dl = R_AllocDlight (num);
if (dl) { if (dl) {
VectorCopy (ent_origin, dl->origin); VectorCopy (ent_origin, dl->origin);
dl->radius = 200.0; dl->radius = 200.0;
@ -154,7 +154,7 @@ void
CL_MuzzleFlash (vec4f_t position, vec4f_t fv, float zoffset, int num, CL_MuzzleFlash (vec4f_t position, vec4f_t fv, float zoffset, int num,
double time) double time)
{ {
dlight_t *dl = r_funcs->R_AllocDlight (num); dlight_t *dl = R_AllocDlight (num);
if (dl) { if (dl) {
position += 18 * fv; position += 18 * fv;
VectorCopy (position, dl->origin); VectorCopy (position, dl->origin);

View file

@ -213,7 +213,7 @@ beam_clear (beam_t *b)
tent_t *t; tent_t *t;
for (t = b->tents; t; t = t->next) { for (t = b->tents; t; t = t->next) {
r_funcs->R_RemoveEfrags (t->ent); R_RemoveEfrags (t->ent);
t->ent->visibility.efrag = 0; t->ent->visibility.efrag = 0;
} }
free_temp_entities (b->tents); free_temp_entities (b->tents);
@ -271,7 +271,7 @@ beam_setup (beam_t *b, qboolean transform, double time, TEntContext_t *ctx)
} else { } else {
Transform_SetLocalPosition (tent->ent->transform, position); Transform_SetLocalPosition (tent->ent->transform, position);
} }
r_funcs->R_AddEfrags (&cl_world.worldmodel->brush, tent->ent); R_AddEfrags (&cl_world.worldmodel->brush, tent->ent);
} }
} }
@ -350,7 +350,7 @@ parse_tent (qmsg_t *net_message, double time, TEntContext_t *ctx,
clp_funcs->ParticleExplosion (position); clp_funcs->ParticleExplosion (position);
// light // light
dl = r_funcs->R_AllocDlight (0); dl = R_AllocDlight (0);
if (dl) { if (dl) {
VectorCopy (position, dl->origin); VectorCopy (position, dl->origin);
dl->radius = 350; dl->radius = 350;
@ -385,7 +385,7 @@ parse_tent (qmsg_t *net_message, double time, TEntContext_t *ctx,
colorLength = MSG_ReadByte (net_message); colorLength = MSG_ReadByte (net_message);
S_StartSound (-1, 0, cl_sfx_r_exp3, &position[0], 1, 1); S_StartSound (-1, 0, cl_sfx_r_exp3, &position[0], 1, 1);
clp_funcs->ParticleExplosion2 (position, colorStart, colorLength); clp_funcs->ParticleExplosion2 (position, colorStart, colorLength);
dl = r_funcs->R_AllocDlight (0); dl = R_AllocDlight (0);
if (!dl) if (!dl)
break; break;
VectorCopy (position, dl->origin); VectorCopy (position, dl->origin);
@ -403,7 +403,7 @@ parse_tent (qmsg_t *net_message, double time, TEntContext_t *ctx,
color[3] = 0.7; color[3] = 0.7;
clp_funcs->ParticleExplosion (position); clp_funcs->ParticleExplosion (position);
S_StartSound (-1, 0, cl_sfx_r_exp3, &position[0], 1, 1); S_StartSound (-1, 0, cl_sfx_r_exp3, &position[0], 1, 1);
dl = r_funcs->R_AllocDlight (0); dl = R_AllocDlight (0);
if (dl) { if (dl) {
VectorCopy (position, dl->origin); VectorCopy (position, dl->origin);
dl->radius = 350; dl->radius = 350;
@ -447,7 +447,7 @@ parse_tent (qmsg_t *net_message, double time, TEntContext_t *ctx,
MSG_ReadCoordV (net_message, &position[0]); MSG_ReadCoordV (net_message, &position[0]);
// light // light
dl = r_funcs->R_AllocDlight (0); dl = R_AllocDlight (0);
if (dl) { if (dl) {
VectorCopy (position, dl->origin); VectorCopy (position, dl->origin);
dl->radius = 150; dl->radius = 150;
@ -620,7 +620,7 @@ CL_UpdateExplosions (double time, TEntContext_t *ctx)
f = 10 * (time - ex->start); f = 10 * (time - ex->start);
if (f >= ent->renderer.model->numframes) { if (f >= ent->renderer.model->numframes) {
tent_obj_t *_to; tent_obj_t *_to;
r_funcs->R_RemoveEfrags (ent); R_RemoveEfrags (ent);
ent->visibility.efrag = 0; ent->visibility.efrag = 0;
free_temp_entities (ex->tent); free_temp_entities (ex->tent);
_to = *to; _to = *to;
@ -632,7 +632,7 @@ CL_UpdateExplosions (double time, TEntContext_t *ctx)
ent->animation.frame = f; ent->animation.frame = f;
if (!ent->visibility.efrag) { if (!ent->visibility.efrag) {
r_funcs->R_AddEfrags (&cl_world.worldmodel->brush, ent); R_AddEfrags (&cl_world.worldmodel->brush, ent);
} }
} }
} }
@ -673,7 +673,7 @@ CL_ClearProjectiles (void)
tent_t *tent; tent_t *tent;
for (tent = cl_projectiles; tent; tent = tent->next) { for (tent = cl_projectiles; tent; tent = tent->next) {
r_funcs->R_RemoveEfrags (tent->ent); R_RemoveEfrags (tent->ent);
tent->ent->visibility.efrag = 0; tent->ent->visibility.efrag = 0;
} }
free_temp_entities (cl_projectiles); free_temp_entities (cl_projectiles);
@ -721,7 +721,7 @@ CL_ParseProjectiles (qmsg_t *net_message, qboolean nail2, TEntContext_t *ctx)
angles[2] = 0; angles[2] = 0;
CL_TransformEntity (tent->ent, 1, angles, position); CL_TransformEntity (tent->ent, 1, angles, position);
r_funcs->R_AddEfrags (&cl_world.worldmodel->brush, tent->ent); R_AddEfrags (&cl_world.worldmodel->brush, tent->ent);
} }
*tail = cl_projectiles; *tail = cl_projectiles;

View file

@ -119,7 +119,7 @@ CL_ParseStatic (qmsg_t *msg, int version)
CL_TransformEntity (ent, es.scale / 16.0, es.angles, es.origin); CL_TransformEntity (ent, es.scale / 16.0, es.angles, es.origin);
r_funcs->R_AddEfrags (&cl_world.worldmodel->brush, ent); R_AddEfrags (&cl_world.worldmodel->brush, ent);
} }
static void static void

View file

@ -298,7 +298,7 @@ locs_draw (double time, vec4f_t simorg)
nearloc = locs_find (simorg); nearloc = locs_find (simorg);
if (nearloc) { if (nearloc) {
dl = r_funcs->R_AllocDlight (4096); dl = R_AllocDlight (4096);
if (dl) { if (dl) {
VectorCopy (nearloc->loc, dl->origin); VectorCopy (nearloc->loc, dl->origin);
dl->radius = 200; dl->radius = 200;

View file

@ -32,12 +32,9 @@ video_renderer_common_sources = \
libs/video/renderer/r_billboard.c \ libs/video/renderer/r_billboard.c \
libs/video/renderer/r_bsp.c \ libs/video/renderer/r_bsp.c \
libs/video/renderer/r_dyn_textures.c \ libs/video/renderer/r_dyn_textures.c \
libs/video/renderer/r_efrag.c \
libs/video/renderer/r_ent.c \ libs/video/renderer/r_ent.c \
libs/video/renderer/r_graph.c \ libs/video/renderer/r_graph.c \
libs/video/renderer/r_iqm.c \ libs/video/renderer/r_iqm.c \
libs/video/renderer/r_light.c \
libs/video/renderer/r_main.c \
libs/video/renderer/r_part.c \ libs/video/renderer/r_part.c \
libs/video/renderer/r_sprite.c \ libs/video/renderer/r_sprite.c \
libs/video/renderer/vid_common.c libs/video/renderer/vid_common.c
@ -51,7 +48,10 @@ libs_video_renderer_libQFrenderer_la_LIBADD= $(renderer_libs)
libs_video_renderer_libQFrenderer_la_DEPENDENCIES= $(renderer_libs) libs_video_renderer_libQFrenderer_la_DEPENDENCIES= $(renderer_libs)
libs_video_renderer_libQFrenderer_la_SOURCES=\ libs_video_renderer_libQFrenderer_la_SOURCES=\
libs/video/renderer/r_cvar.c \ libs/video/renderer/r_cvar.c \
libs/video/renderer/r_efrag.c \
libs/video/renderer/r_init.c \ libs/video/renderer/r_init.c \
libs/video/renderer/r_light.c \
libs/video/renderer/r_main.c \
libs/video/renderer/r_scrap.c \ libs/video/renderer/r_scrap.c \
libs/video/renderer/r_screen.c \ libs/video/renderer/r_screen.c \
libs/video/renderer/r_progs.c libs/video/renderer/r_progs.c

View file

@ -200,7 +200,7 @@ viewsize_f (cvar_t *var)
static void static void
r_dlight_max_f (cvar_t *var) r_dlight_max_f (cvar_t *var)
{ {
r_funcs->R_MaxDlightsCheck (var); R_MaxDlightsCheck (var);
} }
void void

View file

@ -46,6 +46,8 @@ typedef struct s_efrag_list {
static efrag_t *r_free_efrags; static efrag_t *r_free_efrags;
static t_efrag_list *efrag_list; static t_efrag_list *efrag_list;
entqueue_t *r_ent_queue;
/* ENTITY FRAGMENT FUNCTIONS */ /* ENTITY FRAGMENT FUNCTIONS */
static inline void static inline void
@ -204,11 +206,9 @@ R_AddEfrags (mod_brush_t *brush, entity_t *ent)
model_t *entmodel; model_t *entmodel;
vec3_t emins, emaxs; vec3_t emins, emaxs;
if (!ent->renderer.model || !r_worldentity.renderer.model) if (!ent->renderer.model) {
return; return;
}
if (ent == &r_worldentity)
return; // never add the world
entmodel = ent->renderer.model; entmodel = ent->renderer.model;

View file

@ -48,8 +48,6 @@
#include "r_internal.h" #include "r_internal.h"
entqueue_t *r_ent_queue;
float float
R_EntityBlend (animation_t *animation, int pose, float interval) R_EntityBlend (animation_t *animation, int pose, float interval)
{ {

View file

@ -63,7 +63,7 @@ R_FindNearLights (const vec3_t pos, int count, dlight_t **lights)
dl = r_dlights; dl = r_dlights;
for (i = 0; i < r_maxdlights; i++, dl++) { for (i = 0; i < r_maxdlights; i++, dl++) {
if (dl->die < vr_data.realtime || !dl->radius) if (dl->die < r_data->realtime || !dl->radius)
continue; continue;
VectorSubtract (dl->origin, pos, d); VectorSubtract (dl->origin, pos, d);
score = DotProduct (d, d) / dl->radius; score = DotProduct (d, d) / dl->radius;
@ -128,19 +128,19 @@ R_AnimateLight (void)
// light animations // light animations
// 'm' is normal light, 'a' is no light, 'z' is double bright // 'm' is normal light, 'a' is no light, 'z' is double bright
i = (int) (vr_data.realtime * 10); i = (int) (r_data->realtime * 10);
for (j = 0; j < MAX_LIGHTSTYLES; j++) { for (j = 0; j < MAX_LIGHTSTYLES; j++) {
if (!vr_data.lightstyle[j].length) { if (!r_data->lightstyle[j].length) {
d_lightstylevalue[j] = 256; d_lightstylevalue[j] = 256;
continue; continue;
} }
if (r_flatlightstyles->int_val == 2) { if (r_flatlightstyles->int_val == 2) {
k = vr_data.lightstyle[j].peak - 'a'; k = r_data->lightstyle[j].peak - 'a';
} else if (r_flatlightstyles->int_val == 1) { } else if (r_flatlightstyles->int_val == 1) {
k = vr_data.lightstyle[j].average - 'a'; k = r_data->lightstyle[j].average - 'a';
} else { } else {
k = i % vr_data.lightstyle[j].length; k = i % r_data->lightstyle[j].length;
k = vr_data.lightstyle[j].map[k] - 'a'; k = r_data->lightstyle[j].map[k] - 'a';
} }
d_lightstylevalue[j] = k * 22; d_lightstylevalue[j] = k * 22;
} }
@ -325,7 +325,7 @@ R_PushDlights (const vec3_t entorigin)
l = r_dlights; l = r_dlights;
for (i = 0; i < r_maxdlights; i++, l++) { for (i = 0; i < r_maxdlights; i++, l++) {
if (l->die < vr_data.realtime || !l->radius) if (l->die < r_data->realtime || !l->radius)
continue; continue;
VectorSubtract (l->origin, entorigin, lightorigin); VectorSubtract (l->origin, entorigin, lightorigin);
R_MarkLights (lightorigin, l, i, r_worldentity.renderer.model); R_MarkLights (lightorigin, l, i, r_worldentity.renderer.model);
@ -526,7 +526,7 @@ R_AllocDlight (int key)
// then look for anything else // then look for anything else
dl = r_dlights; dl = r_dlights;
for (i = 0; i < r_maxdlights; i++, dl++) { for (i = 0; i < r_maxdlights; i++, dl++) {
if (dl->die < vr_data.realtime) { if (dl->die < r_data->realtime) {
memset (dl, 0, sizeof (*dl)); memset (dl, 0, sizeof (*dl));
dl->key = key; dl->key = key;
dl->color[0] = dl->color[1] = dl->color[2] = 1; dl->color[0] = dl->color[1] = dl->color[2] = 1;
@ -548,7 +548,7 @@ R_DecayLights (double frametime)
dl = r_dlights; dl = r_dlights;
for (i = 0; i < r_maxdlights; i++, dl++) { for (i = 0; i < r_maxdlights; i++, dl++) {
if (dl->die < vr_data.realtime || !dl->radius) if (dl->die < r_data->realtime || !dl->radius)
continue; continue;
dl->radius -= frametime * dl->decay; dl->radius -= frametime * dl->decay;

View file

@ -131,10 +131,6 @@ vid_render_funcs_t gl_vid_render_funcs = {
gl_Draw_Picf, gl_Draw_Picf,
gl_Draw_SubPic, gl_Draw_SubPic,
SCR_SetFOV,
SCR_DrawRam,
SCR_DrawTurtle,
SCR_DrawPause,
gl_SCR_CaptureBGR, gl_SCR_CaptureBGR,
gl_SCR_ScreenShot, gl_SCR_ScreenShot,
SCR_DrawStringToSnap, SCR_DrawStringToSnap,
@ -148,12 +144,7 @@ vid_render_funcs_t gl_vid_render_funcs = {
gl_R_ClearState, gl_R_ClearState,
gl_R_LoadSkys, gl_R_LoadSkys,
gl_R_NewMap, gl_R_NewMap,
R_AddEfrags,
R_RemoveEfrags,
gl_R_LineGraph, gl_R_LineGraph,
R_AllocDlight,
R_MaxDlightsCheck,
R_DecayLights,
gl_R_ViewChanged, gl_R_ViewChanged,
gl_SCR_ScreenShot_f, gl_SCR_ScreenShot_f,
&model_funcs &model_funcs

View file

@ -130,10 +130,6 @@ vid_render_funcs_t glsl_vid_render_funcs = {
glsl_Draw_Picf, glsl_Draw_Picf,
glsl_Draw_SubPic, glsl_Draw_SubPic,
SCR_SetFOV,
SCR_DrawRam,
SCR_DrawTurtle,
SCR_DrawPause,
glsl_SCR_CaptureBGR, glsl_SCR_CaptureBGR,
glsl_SCR_ScreenShot, glsl_SCR_ScreenShot,
SCR_DrawStringToSnap, SCR_DrawStringToSnap,
@ -147,12 +143,7 @@ vid_render_funcs_t glsl_vid_render_funcs = {
glsl_R_ClearState, glsl_R_ClearState,
glsl_R_LoadSkys, glsl_R_LoadSkys,
glsl_R_NewMap, glsl_R_NewMap,
R_AddEfrags,
R_RemoveEfrags,
glsl_R_LineGraph, glsl_R_LineGraph,
R_AllocDlight,
R_MaxDlightsCheck,
R_DecayLights,
glsl_R_ViewChanged, glsl_R_ViewChanged,
glsl_SCR_ScreenShot_f, glsl_SCR_ScreenShot_f,
&model_funcs &model_funcs

View file

@ -127,10 +127,6 @@ vid_render_funcs_t sw_vid_render_funcs = {
Draw_Picf, Draw_Picf,
Draw_SubPic, Draw_SubPic,
SCR_SetFOV,
SCR_DrawRam,
SCR_DrawTurtle,
SCR_DrawPause,
SCR_CaptureBGR, SCR_CaptureBGR,
SCR_ScreenShot, SCR_ScreenShot,
SCR_DrawStringToSnap, SCR_DrawStringToSnap,
@ -144,12 +140,7 @@ vid_render_funcs_t sw_vid_render_funcs = {
R_ClearState, R_ClearState,
R_LoadSkys, R_LoadSkys,
R_NewMap, R_NewMap,
R_AddEfrags,
R_RemoveEfrags,
R_LineGraph, R_LineGraph,
R_AllocDlight,
R_MaxDlightsCheck,
R_DecayLights,
R_ViewChanged, R_ViewChanged,
SCR_ScreenShot_f, SCR_ScreenShot_f,
&model_funcs &model_funcs

View file

@ -132,10 +132,6 @@ vid_render_funcs_t sw32_vid_render_funcs = {
sw32_Draw_Picf, sw32_Draw_Picf,
sw32_Draw_SubPic, sw32_Draw_SubPic,
SCR_SetFOV,
SCR_DrawRam,
SCR_DrawTurtle,
SCR_DrawPause,
sw32_SCR_CaptureBGR, sw32_SCR_CaptureBGR,
sw32_SCR_ScreenShot, sw32_SCR_ScreenShot,
SCR_DrawStringToSnap, SCR_DrawStringToSnap,
@ -149,12 +145,7 @@ vid_render_funcs_t sw32_vid_render_funcs = {
sw32_R_ClearState, sw32_R_ClearState,
sw32_R_LoadSkys, sw32_R_LoadSkys,
sw32_R_NewMap, sw32_R_NewMap,
R_AddEfrags,
R_RemoveEfrags,
sw32_R_LineGraph, sw32_R_LineGraph,
R_AllocDlight,
R_MaxDlightsCheck,
R_DecayLights,
sw32_R_ViewChanged, sw32_R_ViewChanged,
sw32_SCR_ScreenShot_f, sw32_SCR_ScreenShot_f,
&model_funcs &model_funcs

View file

@ -661,10 +661,6 @@ vid_render_funcs_t vulkan_vid_render_funcs = {
vulkan_Draw_Picf, vulkan_Draw_Picf,
vulkan_Draw_SubPic, vulkan_Draw_SubPic,
SCR_SetFOV,
SCR_DrawRam,
SCR_DrawTurtle,
SCR_DrawPause,
vulkan_SCR_CaptureBGR, vulkan_SCR_CaptureBGR,
vulkan_SCR_ScreenShot, vulkan_SCR_ScreenShot,
SCR_DrawStringToSnap, SCR_DrawStringToSnap,
@ -678,12 +674,7 @@ vid_render_funcs_t vulkan_vid_render_funcs = {
vulkan_R_ClearState, vulkan_R_ClearState,
vulkan_R_LoadSkys, vulkan_R_LoadSkys,
vulkan_R_NewMap, vulkan_R_NewMap,
R_AddEfrags,
R_RemoveEfrags,
vulkan_R_LineGraph, vulkan_R_LineGraph,
R_AllocDlight,
R_MaxDlightsCheck,
R_DecayLights,
vulkan_R_ViewChanged, vulkan_R_ViewChanged,
vulkan_SCR_ScreenShot_f, vulkan_SCR_ScreenShot_f,
&model_funcs &model_funcs

View file

@ -212,7 +212,7 @@ CL_RelinkEntities (void)
renderer->model = NULL; renderer->model = NULL;
animation->pose1 = animation->pose2 = -1; animation->pose1 = animation->pose2 = -1;
if (ent->visibility.efrag) { if (ent->visibility.efrag) {
r_funcs->R_RemoveEfrags (ent); // just became empty R_RemoveEfrags (ent); // just became empty
} }
continue; continue;
} }
@ -261,9 +261,9 @@ CL_RelinkEntities (void)
new->origin); new->origin);
if (i != cl.viewentity || chase_active->int_val) { if (i != cl.viewentity || chase_active->int_val) {
if (ent->visibility.efrag) { if (ent->visibility.efrag) {
r_funcs->R_RemoveEfrags (ent); R_RemoveEfrags (ent);
} }
r_funcs->R_AddEfrags (&cl_world.worldmodel->brush, ent); R_AddEfrags (&cl_world.worldmodel->brush, ent);
} }
ent->old_origin = new->origin; ent->old_origin = new->origin;
} else { } else {
@ -298,11 +298,11 @@ CL_RelinkEntities (void)
vec4f_t org vec4f_t org
= Transform_GetWorldPosition (ent->transform); = Transform_GetWorldPosition (ent->transform);
if (!VectorCompare (org, ent->old_origin)) {//FIXME if (!VectorCompare (org, ent->old_origin)) {//FIXME
r_funcs->R_RemoveEfrags (ent); R_RemoveEfrags (ent);
r_funcs->R_AddEfrags (&cl_world.worldmodel->brush, ent); R_AddEfrags (&cl_world.worldmodel->brush, ent);
} }
} else { } else {
r_funcs->R_AddEfrags (&cl_world.worldmodel->brush, ent); R_AddEfrags (&cl_world.worldmodel->brush, ent);
} }
} }
} }

View file

@ -100,9 +100,9 @@ scr_draw_views (void)
static SCR_Func scr_funcs_normal[] = { static SCR_Func scr_funcs_normal[] = {
0, //Draw_Crosshair, 0, //Draw_Crosshair,
0, //SCR_DrawRam, SCR_DrawRam,
0, //SCR_DrawTurtle, SCR_DrawTurtle,
0, //SCR_DrawPause, SCR_DrawPause,
Sbar_Draw, Sbar_Draw,
SCR_CShift, SCR_CShift,
Sbar_DrawCenterPrint, Sbar_DrawCenterPrint,
@ -164,9 +164,6 @@ CL_UpdateScreen (double realtime)
r_data->min_wateralpha = 1.0; r_data->min_wateralpha = 1.0;
} }
scr_funcs_normal[0] = r_funcs->Draw_Crosshair; scr_funcs_normal[0] = r_funcs->Draw_Crosshair;
scr_funcs_normal[1] = r_funcs->SCR_DrawRam;
scr_funcs_normal[2] = r_funcs->SCR_DrawTurtle;
scr_funcs_normal[3] = r_funcs->SCR_DrawPause;
cl.viewstate.intermission = cl.intermission != 0; cl.viewstate.intermission = cl.intermission != 0;
V_PrepBlend (&cl.viewstate); V_PrepBlend (&cl.viewstate);

View file

@ -617,7 +617,7 @@ Host_ClientFrame (void)
if (l) if (l)
asl = l->ambient_sound_level; asl = l->ambient_sound_level;
S_Update (cl.viewstate.camera_transform, asl); S_Update (cl.viewstate.camera_transform, asl);
r_funcs->R_DecayLights (host_frametime); R_DecayLights (host_frametime);
} else } else
S_Update (0, 0); S_Update (0, 0);

View file

@ -165,3 +165,8 @@ console_client_PluginInfo (void)
{ {
return 0; return 0;
} }
void
R_DecayLights (double frametime)
{
}

View file

@ -165,7 +165,7 @@ CL_LinkPacketEntities (void)
renderer->model = NULL; renderer->model = NULL;
animation->pose1 = animation->pose2 = -1; animation->pose1 = animation->pose2 = -1;
if (ent->visibility.efrag) { if (ent->visibility.efrag) {
r_funcs->R_RemoveEfrags (ent); // just became empty R_RemoveEfrags (ent); // just became empty
} }
continue; continue;
} }
@ -179,7 +179,7 @@ CL_LinkPacketEntities (void)
|| (cl_deadbodyfilter->int_val && is_dead_body (new)) || (cl_deadbodyfilter->int_val && is_dead_body (new))
|| (cl_gibfilter->int_val && is_gib (new))) { || (cl_gibfilter->int_val && is_gib (new))) {
if (ent->visibility.efrag) { if (ent->visibility.efrag) {
r_funcs->R_RemoveEfrags (ent); R_RemoveEfrags (ent);
} }
continue; continue;
} }
@ -232,9 +232,9 @@ CL_LinkPacketEntities (void)
new->origin); new->origin);
if (i != cl.viewentity || chase_active->int_val) { if (i != cl.viewentity || chase_active->int_val) {
if (ent->visibility.efrag) { if (ent->visibility.efrag) {
r_funcs->R_RemoveEfrags (ent); R_RemoveEfrags (ent);
} }
r_funcs->R_AddEfrags (&cl_world.worldmodel->brush, ent); R_AddEfrags (&cl_world.worldmodel->brush, ent);
} }
} else { } else {
vec4f_t delta = new->origin - old->origin; vec4f_t delta = new->origin - old->origin;
@ -265,16 +265,16 @@ CL_LinkPacketEntities (void)
vec4f_t org vec4f_t org
= Transform_GetWorldPosition (ent->transform); = Transform_GetWorldPosition (ent->transform);
if (!VectorCompare (org, ent->old_origin)) {//FIXME if (!VectorCompare (org, ent->old_origin)) {//FIXME
r_funcs->R_RemoveEfrags (ent); R_RemoveEfrags (ent);
r_funcs->R_AddEfrags (&cl_world.worldmodel->brush, ent); R_AddEfrags (&cl_world.worldmodel->brush, ent);
} }
} else { } else {
r_funcs->R_AddEfrags (&cl_world.worldmodel->brush, ent); R_AddEfrags (&cl_world.worldmodel->brush, ent);
} }
} }
} }
if (!ent->visibility.efrag) { if (!ent->visibility.efrag) {
r_funcs->R_AddEfrags (&cl_world.worldmodel->brush, ent); R_AddEfrags (&cl_world.worldmodel->brush, ent);
} }
// rotate binary objects locally // rotate binary objects locally
@ -400,9 +400,9 @@ CL_LinkPlayers (void)
j < MAX_CLIENTS; j++, player++, state++) { j < MAX_CLIENTS; j++, player++, state++) {
ent = CL_GetEntity (j + 1); ent = CL_GetEntity (j + 1);
if (ent->visibility.efrag) if (ent->visibility.efrag)
r_funcs->R_RemoveEfrags (ent); R_RemoveEfrags (ent);
if (player->flag_ent && player->flag_ent->visibility.efrag) { if (player->flag_ent && player->flag_ent->visibility.efrag) {
r_funcs->R_RemoveEfrags (player->flag_ent); R_RemoveEfrags (player->flag_ent);
} }
if (state->messagenum != cl.parsecount) if (state->messagenum != cl.parsecount)
continue; // not present this frame continue; // not present this frame
@ -421,7 +421,7 @@ CL_LinkPlayers (void)
clientplayer = false; clientplayer = false;
} }
if (player->chat && player->chat->value[0] != '0') { if (player->chat && player->chat->value[0] != '0') {
dlight_t *dl = r_funcs->R_AllocDlight (j + 1); dlight_t *dl = R_AllocDlight (j + 1);
VectorCopy (org, dl->origin); VectorCopy (org, dl->origin);
dl->radius = 100; dl->radius = 100;
dl->die = cl.time + 0.1; dl->die = cl.time + 0.1;
@ -511,10 +511,10 @@ CL_LinkPlayers (void)
} }
// stuff entity in map // stuff entity in map
r_funcs->R_AddEfrags (&cl_world.worldmodel->brush, ent); R_AddEfrags (&cl_world.worldmodel->brush, ent);
if (player->flag_ent) { if (player->flag_ent) {
CL_UpdateFlagModels (ent, j); CL_UpdateFlagModels (ent, j);
r_funcs->R_AddEfrags (&cl_world.worldmodel->brush, player->flag_ent); R_AddEfrags (&cl_world.worldmodel->brush, player->flag_ent);
} }
} }
} }

View file

@ -1735,7 +1735,7 @@ Host_Frame (float time)
if (l) if (l)
asl = l->ambient_sound_level; asl = l->ambient_sound_level;
S_Update (cl.viewstate.camera_transform, asl); S_Update (cl.viewstate.camera_transform, asl);
r_funcs->R_DecayLights (host_frametime); R_DecayLights (host_frametime);
} else } else
S_Update (0, 0); S_Update (0, 0);

View file

@ -109,9 +109,9 @@ scr_draw_views (void)
static SCR_Func scr_funcs_normal[] = { static SCR_Func scr_funcs_normal[] = {
0, //Draw_Crosshair, 0, //Draw_Crosshair,
0, //SCR_DrawRam, SCR_DrawRam,
0, //SCR_DrawTurtle, SCR_DrawTurtle,
0, //SCR_DrawPause, SCR_DrawPause,
Sbar_Draw, Sbar_Draw,
SCR_CShift, SCR_CShift,
scr_draw_views, scr_draw_views,
@ -185,9 +185,6 @@ CL_UpdateScreen (double realtime)
r_data->min_wateralpha = 1.0; r_data->min_wateralpha = 1.0;
} }
scr_funcs_normal[0] = r_funcs->Draw_Crosshair; scr_funcs_normal[0] = r_funcs->Draw_Crosshair;
scr_funcs_normal[1] = r_funcs->SCR_DrawRam;
scr_funcs_normal[2] = r_funcs->SCR_DrawTurtle;
scr_funcs_normal[3] = r_funcs->SCR_DrawPause;
if (cl.viewstate.flags & VF_GIB) { if (cl.viewstate.flags & VF_GIB) {
cl.viewstate.height = 8; // gib view height cl.viewstate.height = 8; // gib view height