コード例 #1
0
ファイル: StGLRootWidget.cpp プロジェクト: zodsoft/sview
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();
    }
}
コード例 #2
0
ファイル: quadtreenode.cpp プロジェクト: Adriqun/C-CPP-SDL2
	void QuadTreeNode::merge()
	{
		if(hasChildren)
		{
			// Place all occupants at lower levels into this node
			getOccupants(occupants);
			destroyChildren();
		}
	}
コード例 #3
0
ファイル: StGLWidget.cpp プロジェクト: KindDragon/sview
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();
}
コード例 #4
0
ファイル: Widget.cpp プロジェクト: elmindreda/Nori
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));
}
コード例 #5
0
ファイル: Entity.cpp プロジェクト: Zylann/SnowfeetEngine
//------------------------------------------------------------------------------
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");
}
コード例 #6
0
ファイル: QuadTreeNode.cpp プロジェクト: hahahahaman/ltbl
	QuadTreeNode::~QuadTreeNode()
	{
		if(m_hasChildren)
			destroyChildren();
	}
コード例 #7
0
ファイル: pAST.cpp プロジェクト: carriercomm/corvus
void stmt::doDestroy(pParseContext &C) {
  destroyChildren(C);
  this->~stmt();
  C.deallocate((void *)this);

}
コード例 #8
0
ファイル: Scene.cpp プロジェクト: Zylann/SnowfeetEngine
//------------------------------------------------------------------------------
void Scene::destroyChildrenButServices()
{
    destroyChildren([](const Entity & e){
        return !e.getFlag(SN_EF_STICKY);
    });
}
コード例 #9
0
ファイル: SceneGraph.cpp プロジェクト: tapio/Wendy
Node::~Node()
{
  destroyChildren();
  removeFromParent();
}
コード例 #10
0
ファイル: xml_tag.cpp プロジェクト: WST/xpbot
XmlTag::~XmlTag() {
	destroyAttributes();
	destroyChildren();
}