Esempio n. 1
0
StGLRootWidget::~StGLRootWidget() {
    // force children destruction here to ensure shared resources no more in use
    destroyChildren();

    // release array of shared resources (handles should be released already!)
    for(size_t aResId = 0; aResId < myShareSize; ++aResId) {
        delete myShareArray[aResId];
    }
    delete[] myShareArray;
    if(!myGlCtx.isNull()) {
        myMenuProgram->release(*myGlCtx);
        myMenuProgram.nullify();
        myTextProgram->release(*myGlCtx);
        myTextProgram.nullify();
        myTextBorderProgram->release(*myGlCtx);
        myTextBorderProgram.nullify();
        if(!myCheckboxIcon.isNull()) {
            for(size_t aTexIter = 0; aTexIter < myCheckboxIcon->size(); ++aTexIter) {
                myCheckboxIcon->changeValue(aTexIter).release(*myGlCtx);
            }
            myCheckboxIcon.nullify();
        }
        if(!myRadioIcon.isNull()) {
            for(size_t aTexIter = 0; aTexIter < myRadioIcon->size(); ++aTexIter) {
                myRadioIcon->changeValue(aTexIter).release(*myGlCtx);
            }
            myRadioIcon.nullify();
        }
        myGlFontMgr->release(*myGlCtx);
        myGlFontMgr.nullify();
    }
}
Esempio n. 2
0
	void QuadTreeNode::merge()
	{
		if(hasChildren)
		{
			// Place all occupants at lower levels into this node
			getOccupants(occupants);
			destroyChildren();
		}
	}
Esempio n. 3
0
StGLWidget::~StGLWidget() {
    if(myRoot != NULL
    && myRoot->getFocus() == this) {
        myRoot->setFocus(NULL);
    }
    if(myParent != NULL) {
        // remove self from parent
        myParent->getChildren()->remove(this);
    }
    // remove own children
    destroyChildren();
}
Esempio n. 4
0
Widget::~Widget()
{
  invalidate();
  destroyChildren();
  m_destroyed(*this);
  m_layer.removeWidget(*this);

  std::vector<Widget*>* siblings;

  if (m_parent)
    siblings = &(m_parent->m_children);
  else
    siblings = &(m_layer.m_roots);

  siblings->erase(std::find(siblings->begin(), siblings->end(), this));
}
Esempio n. 5
0
//------------------------------------------------------------------------------
Entity::~Entity()
{
    if (r_parent)
        r_parent->removeChild(this);
    destroyChildren();

    removeAllTags();

	// Unregister update callback
    if (getFlag(SN_EF_UPDATABLE))
    	setUpdatable(false);
    if (getFlag(SN_EF_SYSTEM_EVENT_LISTENER))
        listenToSystemEvents(false);

    //SN_LOG("Entity " << getName() << " destroyed");
}
Esempio n. 6
0
	QuadTreeNode::~QuadTreeNode()
	{
		if(m_hasChildren)
			destroyChildren();
	}
Esempio n. 7
0
void stmt::doDestroy(pParseContext &C) {
  destroyChildren(C);
  this->~stmt();
  C.deallocate((void *)this);

}
Esempio n. 8
0
//------------------------------------------------------------------------------
void Scene::destroyChildrenButServices()
{
    destroyChildren([](const Entity & e){
        return !e.getFlag(SN_EF_STICKY);
    });
}
Esempio n. 9
0
Node::~Node()
{
  destroyChildren();
  removeFromParent();
}
Esempio n. 10
0
XmlTag::~XmlTag() {
	destroyAttributes();
	destroyChildren();
}