mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-04-19 07:51:08 +00:00
[ui] Add visibility control to canvases
This commit is contained in:
parent
c1cd81222d
commit
4eef11c329
2 changed files with 15 additions and 1 deletions
|
@ -57,6 +57,7 @@ enum {
|
|||
};
|
||||
|
||||
typedef struct canvas_s {
|
||||
bool visible;
|
||||
uint32_t range[canvas_comp_count];
|
||||
} canvas_t;
|
||||
|
||||
|
@ -92,6 +93,7 @@ void Canvas_SortComponentPool (canvas_system_t canvas_sys, uint32_t ent,
|
|||
void Canvas_SetLen (canvas_system_t canvas_sys, view_pos_t len);
|
||||
CANVASINLINE view_t Canvas_GetRootView (canvas_system_t canvas_sys,
|
||||
uint32_t ent);
|
||||
CANVASINLINE bool *Canvas_Visible (canvas_system_t canvas_sys, uint32_t ent);
|
||||
|
||||
#undef CANVASINLINE
|
||||
#ifndef IMPLEMENT_CANVAS_Funcs
|
||||
|
@ -108,6 +110,14 @@ Canvas_GetRootView (canvas_system_t canvas_sys, uint32_t ent)
|
|||
return View_FromEntity (viewsys, ent);
|
||||
}
|
||||
|
||||
CANVASINLINE
|
||||
bool *
|
||||
Canvas_Visible (canvas_system_t canvas_sys, uint32_t ent)
|
||||
{
|
||||
uint32_t comp = canvas_sys.base + canvas_canvas;
|
||||
return Ent_GetComponent (ent, comp, canvas_sys.reg);
|
||||
}
|
||||
|
||||
#undef CANVASINLINE
|
||||
|
||||
#endif//__QF_scene_canvas_h
|
||||
|
|
|
@ -457,6 +457,10 @@ Canvas_Draw (canvas_system_t canvas_sys)
|
|||
canvas_t *canvas = canvases++;
|
||||
//uint32_t ent = *entities++;
|
||||
|
||||
if (!canvas->visible) {
|
||||
continue;
|
||||
}
|
||||
|
||||
for (int i = 0; i < canvas_comp_count; i++) {
|
||||
if (draw_func[i]) {
|
||||
uint32_t c = canvas_sys.base + i;
|
||||
|
@ -495,7 +499,7 @@ Canvas_InitSys (canvas_system_t *canvas_sys, ecs_registry_t *reg)
|
|||
void
|
||||
Canvas_AddToEntity (canvas_system_t canvas_sys, uint32_t ent)
|
||||
{
|
||||
canvas_t canvas = { };
|
||||
canvas_t canvas = { .visible = true };
|
||||
for (uint32_t i = 0; i < canvas_comp_count; i++) {
|
||||
canvas.range[i] = ECS_NewSubpoolRange (canvas_sys.reg,
|
||||
canvas_sys.base + i);
|
||||
|
|
Loading…
Reference in a new issue