Ejemplo n.º 1
0
static void screen_delarea(bContext *C, bScreen *sc, ScrArea *sa)
{

  ED_area_exit(C, sa);

  BKE_screen_area_free(sa);

  BLI_remlink(&sc->areabase, sa);
  MEM_freeN(sa);
}
Ejemplo n.º 2
0
/* don't free screen itself */
void BKE_screen_free(bScreen *sc)
{
	ScrArea *sa, *san;
	ARegion *ar;
	
	for (ar = sc->regionbase.first; ar; ar = ar->next)
		BKE_area_region_free(NULL, ar);

	BLI_freelistN(&sc->regionbase);
	
	for (sa = sc->areabase.first; sa; sa = san) {
		san = sa->next;
		BKE_screen_area_free(sa);
	}
	
	BLI_freelistN(&sc->vertbase);
	BLI_freelistN(&sc->edgebase);
	BLI_freelistN(&sc->areabase);
}