GraphicsContext3DPrivate::~GraphicsContext3DPrivate() { if (!m_evasGL) return; if (m_evasGLSurface) evas_gl_surface_destroy(m_evasGL, m_evasGLSurface); if (m_evasGLContext) evas_gl_context_destroy(m_evasGL, m_evasGLContext); evas_gl_free(m_evasGL); }
static void win_delete_request_cb(void *data, Evas_Object *obj, void *event_info) { appdata_s *ad = data; cairo_surface_destroy(ad->surface); cairo_destroy(ad->cairo); cairo_device_destroy(ad->cairo_device); evas_gl_surface_destroy(ad->evas_gl, ad->evas_gl_surface); evas_gl_context_destroy(ad->evas_gl, ad->evas_gl_context); evas_gl_config_free(ad->evas_gl_config); evas_gl_free(ad->evas_gl); ui_app_exit(); }
EAPI void evas_gl_free(Evas_GL *evas_gl) { MAGIC_CHECK(evas_gl, Evas_GL, MAGIC_EVAS_GL); return; MAGIC_CHECK_END(); // Delete undeleted surfaces while (evas_gl->surfaces) evas_gl_surface_destroy(evas_gl, evas_gl->surfaces->data); // Delete undeleted contexts while (evas_gl->contexts) evas_gl_context_destroy(evas_gl, evas_gl->contexts->data); evas_gl->magic = 0; free(evas_gl); }