mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-02-17 01:11:45 +00:00
[renderer] Handle transparent surfaces
Other than the view model (undecided on the approach) this has R_RenderView pretty much pulled out of the low level renderers. With this, I'll be able to focus on scene handling for a bit then getting shadows and fisheye working (again for fisheye).
This commit is contained in:
parent
c05476f94b
commit
2b72506868
8 changed files with 28 additions and 2 deletions
|
@ -111,6 +111,7 @@ typedef struct vid_render_funcs_s {
|
||||||
void (*render_view) (void);
|
void (*render_view) (void);
|
||||||
void (*draw_entities) (struct entqueue_s *queue);
|
void (*draw_entities) (struct entqueue_s *queue);
|
||||||
void (*draw_particles) (struct psystem_s *psystem);
|
void (*draw_particles) (struct psystem_s *psystem);
|
||||||
|
void (*draw_transparent) (void);
|
||||||
void (*set_2d) (int scaled);
|
void (*set_2d) (int scaled);
|
||||||
void (*end_frame) (void);
|
void (*end_frame) (void);
|
||||||
|
|
||||||
|
|
|
@ -320,7 +320,6 @@ R_RenderScene (void)
|
||||||
gl_R_DrawWorld (); // adds static entities to the list
|
gl_R_DrawWorld (); // adds static entities to the list
|
||||||
S_ExtraUpdate (); // don't let sound get messed up if going slow
|
S_ExtraUpdate (); // don't let sound get messed up if going slow
|
||||||
gl_R_RenderDlights ();
|
gl_R_RenderDlights ();
|
||||||
gl_R_DrawWaterSurfaces ();
|
|
||||||
R_DrawViewModel ();
|
R_DrawViewModel ();
|
||||||
|
|
||||||
gl_Fog_DisableGFog ();
|
gl_Fog_DisableGFog ();
|
||||||
|
|
|
@ -172,7 +172,6 @@ glsl_R_RenderView (void)
|
||||||
R_SetupView ();
|
R_SetupView ();
|
||||||
glsl_R_DrawWorld ();
|
glsl_R_DrawWorld ();
|
||||||
glsl_R_DrawSky ();
|
glsl_R_DrawSky ();
|
||||||
glsl_R_DrawWaterSurfaces ();
|
|
||||||
R_DrawViewModel ();
|
R_DrawViewModel ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -212,6 +212,7 @@ SCR_UpdateScreen (transform_t *camera, double realtime, SCR_Func *scr_funcs)
|
||||||
r_funcs->render_view ();
|
r_funcs->render_view ();
|
||||||
r_funcs->draw_entities (r_ent_queue);
|
r_funcs->draw_entities (r_ent_queue);
|
||||||
r_funcs->draw_particles (&r_psystem);
|
r_funcs->draw_particles (&r_psystem);
|
||||||
|
r_funcs->draw_transparent ();
|
||||||
r_funcs->set_2d (0);
|
r_funcs->set_2d (0);
|
||||||
view_draw (r_data->scr_view);
|
view_draw (r_data->scr_view);
|
||||||
r_funcs->set_2d (1);
|
r_funcs->set_2d (1);
|
||||||
|
|
|
@ -262,6 +262,12 @@ gl_render_view (void)
|
||||||
gl_R_RenderView ();
|
gl_R_RenderView ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gl_draw_transparent (void)
|
||||||
|
{
|
||||||
|
gl_R_DrawWaterSurfaces ();
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gl_set_2d (int scaled)
|
gl_set_2d (int scaled)
|
||||||
{
|
{
|
||||||
|
@ -330,6 +336,7 @@ vid_render_funcs_t gl_vid_render_funcs = {
|
||||||
gl_render_view,
|
gl_render_view,
|
||||||
gl_R_RenderEntities,
|
gl_R_RenderEntities,
|
||||||
gl_R_DrawParticles,
|
gl_R_DrawParticles,
|
||||||
|
gl_draw_transparent,
|
||||||
gl_set_2d,
|
gl_set_2d,
|
||||||
gl_end_frame,
|
gl_end_frame,
|
||||||
&model_funcs
|
&model_funcs
|
||||||
|
|
|
@ -220,6 +220,12 @@ glsl_render_view (void)
|
||||||
glsl_R_RenderView ();
|
glsl_R_RenderView ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
glsl_draw_transparent (void)
|
||||||
|
{
|
||||||
|
glsl_R_DrawWaterSurfaces ();
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
glsl_set_2d (int scaled)
|
glsl_set_2d (int scaled)
|
||||||
{
|
{
|
||||||
|
@ -274,6 +280,7 @@ vid_render_funcs_t glsl_vid_render_funcs = {
|
||||||
glsl_render_view,
|
glsl_render_view,
|
||||||
glsl_R_RenderEntities,
|
glsl_R_RenderEntities,
|
||||||
glsl_R_DrawParticles,
|
glsl_R_DrawParticles,
|
||||||
|
glsl_draw_transparent,
|
||||||
glsl_set_2d,
|
glsl_set_2d,
|
||||||
glsl_end_frame,
|
glsl_end_frame,
|
||||||
&model_funcs
|
&model_funcs
|
||||||
|
|
|
@ -144,6 +144,11 @@ sw_render_view (void)
|
||||||
R_RenderView ();
|
R_RenderView ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
sw_draw_transparent (void)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
sw_set_2d (int scaled)
|
sw_set_2d (int scaled)
|
||||||
{
|
{
|
||||||
|
@ -218,6 +223,7 @@ vid_render_funcs_t sw_vid_render_funcs = {
|
||||||
sw_render_view,
|
sw_render_view,
|
||||||
R_DrawEntitiesOnList,
|
R_DrawEntitiesOnList,
|
||||||
R_DrawParticles,
|
R_DrawParticles,
|
||||||
|
sw_draw_transparent,
|
||||||
sw_set_2d,
|
sw_set_2d,
|
||||||
sw_end_frame,
|
sw_end_frame,
|
||||||
&model_funcs
|
&model_funcs
|
||||||
|
|
|
@ -303,6 +303,11 @@ vulkan_draw_particles (struct psystem_s *psystem)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
vulkan_draw_transparent (void)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
vulkan_set_2d (int scaled)
|
vulkan_set_2d (int scaled)
|
||||||
{
|
{
|
||||||
|
@ -688,6 +693,7 @@ vid_render_funcs_t vulkan_vid_render_funcs = {
|
||||||
vulkan_render_view,
|
vulkan_render_view,
|
||||||
vulkan_draw_entities,
|
vulkan_draw_entities,
|
||||||
vulkan_draw_particles,
|
vulkan_draw_particles,
|
||||||
|
vulkan_draw_transparent,
|
||||||
vulkan_set_2d,
|
vulkan_set_2d,
|
||||||
vulkan_end_frame,
|
vulkan_end_frame,
|
||||||
&model_funcs
|
&model_funcs
|
||||||
|
|
Loading…
Reference in a new issue