mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-04-18 23:43:12 +00:00
[client] Clean up screen view creation
This commit is contained in:
parent
8bb5d2e1c9
commit
3138c7ae3b
1 changed files with 70 additions and 61 deletions
|
@ -104,6 +104,37 @@ static viewstate_t *_vs;//FIXME ick
|
|||
|
||||
canvas_system_t cl_canvas_sys;
|
||||
|
||||
static ecs_system_t cl_view_system;
|
||||
|
||||
static view_t
|
||||
clscr_view (int x, int y, int w, int h, grav_t gravity)
|
||||
{
|
||||
auto view = View_New (cl_view_system, cl_screen_view);
|
||||
View_SetPos (view, x, y);
|
||||
View_SetLen (view, w, h);
|
||||
View_SetGravity (view, gravity);
|
||||
View_SetVisible (view, 0);
|
||||
return view;
|
||||
}
|
||||
|
||||
static void
|
||||
clscr_set_pic (view_t view, qpic_t *pic)
|
||||
{
|
||||
Ent_SetComponent (view.id, canvas_pic, view.reg, &pic);
|
||||
}
|
||||
|
||||
static void
|
||||
clscr_set_cachepic (view_t view, const char *name)
|
||||
{
|
||||
Ent_SetComponent (view.id, canvas_cachepic, view.reg, &name);
|
||||
}
|
||||
|
||||
static void
|
||||
clscr_set_canvas_func (view_t view, canvas_func_f func)
|
||||
{
|
||||
Ent_SetComponent (view.id, canvas_func, view.reg, &func);
|
||||
}
|
||||
|
||||
static void
|
||||
SCR_CShift (void)
|
||||
{
|
||||
|
@ -188,11 +219,46 @@ cl_vidsize_listener (void *data, const viddef_t *vdef)
|
|||
cl_set_size ();
|
||||
}
|
||||
|
||||
static void
|
||||
cl_create_views (void)
|
||||
{
|
||||
qpic_t *pic;
|
||||
const char *name;
|
||||
|
||||
pic = r_funcs->Draw_PicFromWad ("ram");
|
||||
ram_view = clscr_view (32, 0, pic->width, pic->height, grav_northwest);
|
||||
clscr_set_pic (ram_view, pic);
|
||||
|
||||
pic = r_funcs->Draw_PicFromWad ("turtle");
|
||||
turtle_view = clscr_view (32, 0, pic->width, pic->height, grav_northwest);
|
||||
clscr_set_pic (turtle_view, pic);
|
||||
|
||||
pic = r_funcs->Draw_PicFromWad ("net");
|
||||
net_view = clscr_view (64, 0, pic->width, pic->height, grav_northwest);
|
||||
clscr_set_pic (net_view, pic);
|
||||
|
||||
timegraph_view = clscr_view (0, 0, r_data->vid->width, 100, grav_southwest);
|
||||
clscr_set_canvas_func (timegraph_view, R_TimeGraph);
|
||||
View_SetVisible (timegraph_view, r_timegraph);
|
||||
|
||||
zgraph_view = clscr_view (0, 0, r_data->vid->width, 100, grav_southwest);
|
||||
clscr_set_canvas_func (zgraph_view, R_ZGraph);
|
||||
View_SetVisible (zgraph_view, r_zgraph);
|
||||
|
||||
name = "gfx/loading.lmp";
|
||||
pic = r_funcs->Draw_CachePic (name, 1);
|
||||
loading_view = clscr_view (0, -24, pic->width, pic->height, grav_center);
|
||||
clscr_set_cachepic (loading_view, name);
|
||||
|
||||
name = "gfx/pause.lmp";
|
||||
pic = r_funcs->Draw_CachePic (name, 1);
|
||||
pause_view = clscr_view (0, -24, pic->width, pic->height, grav_center);
|
||||
clscr_set_cachepic (pause_view, name);
|
||||
}
|
||||
|
||||
void
|
||||
CL_Init_Screen (void)
|
||||
{
|
||||
qpic_t *pic;
|
||||
|
||||
__auto_type reg = ECS_NewRegistry ();
|
||||
Canvas_InitSys (&cl_canvas_sys, reg);
|
||||
if (con_module) {
|
||||
|
@ -207,7 +273,7 @@ CL_Init_Screen (void)
|
|||
cl_xlen = viddef.width;
|
||||
cl_ylen = viddef.height;
|
||||
|
||||
ecs_system_t vsys = {
|
||||
cl_view_system = (ecs_system_t) {
|
||||
.reg = reg,
|
||||
.base = cl_canvas_sys.view_base,
|
||||
};
|
||||
|
@ -222,68 +288,11 @@ CL_Init_Screen (void)
|
|||
View_SetGravity (cl_screen_view, grav_northwest);
|
||||
View_SetVisible (cl_screen_view, 1);
|
||||
|
||||
pic = r_funcs->Draw_PicFromWad ("ram");
|
||||
ram_view = View_New (vsys, cl_screen_view);
|
||||
View_SetPos (ram_view, 32, 0);
|
||||
View_SetLen (ram_view, pic->width, pic->height);
|
||||
View_SetGravity (ram_view, grav_northwest);
|
||||
Ent_SetComponent (ram_view.id, canvas_pic, ram_view.reg, &pic);
|
||||
View_SetVisible (ram_view, 0);
|
||||
|
||||
pic = r_funcs->Draw_PicFromWad ("turtle");
|
||||
turtle_view = View_New (vsys, cl_screen_view);
|
||||
View_SetPos (turtle_view, 32, 0);
|
||||
View_SetLen (turtle_view, pic->width, pic->height);
|
||||
View_SetGravity (turtle_view, grav_northwest);
|
||||
Ent_SetComponent (turtle_view.id, canvas_pic, turtle_view.reg, &pic);
|
||||
View_SetVisible (turtle_view, 0);
|
||||
|
||||
Cvar_Register (&scr_showpause_cvar, 0, 0);
|
||||
Cvar_Register (&scr_showram_cvar, 0, 0);
|
||||
Cvar_Register (&scr_showturtle_cvar, 0, 0);
|
||||
|
||||
pic = r_funcs->Draw_PicFromWad ("net");
|
||||
net_view = View_New (vsys, cl_screen_view);
|
||||
View_SetPos (net_view, 64, 0);
|
||||
View_SetLen (net_view, pic->width, pic->height);
|
||||
View_SetGravity (net_view, grav_northwest);
|
||||
Ent_SetComponent (net_view.id, canvas_pic, net_view.reg, &pic);
|
||||
View_SetVisible (net_view, 0);
|
||||
|
||||
timegraph_view = View_New (vsys, cl_screen_view);
|
||||
View_SetPos (timegraph_view, 0, 0);
|
||||
View_SetLen (timegraph_view, r_data->vid->width, 100);
|
||||
View_SetGravity (timegraph_view, grav_southwest);
|
||||
void *rtg = R_TimeGraph;
|
||||
Ent_SetComponent (timegraph_view.id, canvas_func, timegraph_view.reg, &rtg);
|
||||
View_SetVisible (timegraph_view, r_timegraph);
|
||||
|
||||
zgraph_view = View_New (vsys, cl_screen_view);
|
||||
View_SetPos (zgraph_view, 0, 0);
|
||||
View_SetLen (zgraph_view, r_data->vid->width, 100);
|
||||
View_SetGravity (zgraph_view, grav_southwest);
|
||||
void *rzg = R_ZGraph;
|
||||
Ent_SetComponent (zgraph_view.id, canvas_func, zgraph_view.reg, &rzg);
|
||||
View_SetVisible (zgraph_view, r_zgraph);
|
||||
|
||||
const char *name = "gfx/loading.lmp";
|
||||
pic = r_funcs->Draw_CachePic (name, 1);
|
||||
loading_view = View_New (vsys, cl_screen_view);
|
||||
View_SetPos (loading_view, 0, -24);
|
||||
View_SetLen (loading_view, pic->width, pic->height);
|
||||
View_SetGravity (loading_view, grav_center);
|
||||
Ent_SetComponent (loading_view.id, canvas_cachepic,
|
||||
loading_view.reg, &name);
|
||||
View_SetVisible (loading_view, 0);
|
||||
|
||||
name = "gfx/pause.lmp";
|
||||
pic = r_funcs->Draw_CachePic (name, 1);
|
||||
pause_view = View_New (vsys, cl_screen_view);
|
||||
View_SetPos (pause_view, 0, -24);
|
||||
View_SetLen (pause_view, pic->width, pic->height);
|
||||
View_SetGravity (pause_view, grav_center);
|
||||
Ent_SetComponent (pause_view.id, canvas_cachepic, pause_view.reg, &name);
|
||||
View_SetVisible (pause_view, 0);
|
||||
cl_create_views ();
|
||||
|
||||
cvar_t *con_scale = Cvar_FindVar ("con_scale");
|
||||
Cvar_AddListener (con_scale, cl_scale_listener, 0);
|
||||
|
|
Loading…
Reference in a new issue