/** * \brief Frees the framebuffer. * \param self Framebuffer. */ void liren_framebuffer32_free ( LIRenFramebuffer32* self) { lialg_ptrdic_remove (self->render->framebuffers, self); glDeleteFramebuffers (1, &self->render_framebuffer); glDeleteFramebuffers (2, self->postproc_framebuffers); glDeleteTextures (2, self->render_textures); glDeleteTextures (3, self->postproc_textures); lisys_free (self); }
/** * \brief Frees the widget. * \param self Widget. */ void liwdg_widget_free (LIWdgWidget* self) { int x; int y; while (self->children != NULL) private_call_detach_manual (self, self->children); for (y = 0 ; y < self->height ; y++) for (x = 0 ; x < self->width ; x++) private_call_detach (self, x, y); liwdg_widget_canvas_clear (self); liwdg_widget_detach (self); lisys_free (self->cols); lisys_free (self->rows); lisys_free (self->cells); lialg_ptrdic_remove (self->manager->widgets.all, self); liren_render_overlay_free (self->manager->render, self->overlay); lisys_free (self); }