/** * @brief * Constructor */ SNMDrawRectangle::SNMDrawRectangle(SceneNode &cSceneNode) : SNMDraw(cSceneNode), Width(this), Color(this), Flags(this), SlotOnDrawTransparent(this) { // Set draw function flags cSceneNode.SetDrawFunctionFlags(static_cast<uint8>(cSceneNode.GetDrawFunctionFlags() | SceneNode::UseDrawTransparent)); }
/** * @brief * Post draw all scene nodes recursive */ void SPScene::DrawPost(Renderer &cRenderer, SceneContainer &cContainer) { // Get the scene container (can be a null pointer) SceneContainer *pContainer = GetSceneContainer(); // Draw parent container if (&cContainer != pContainer) cContainer.DrawPost(cRenderer); // Loop through all nodes for (uint32 i=0; i<cContainer.GetNumOfElements(); i++) { SceneNode *pNode = cContainer.GetByIndex(i); if (pNode != pContainer && pNode->IsVisible() && (pNode->GetDrawFunctionFlags() & SceneNode::UseDrawPost)) { if (pNode->IsContainer()) DrawPost(cRenderer, static_cast<SceneContainer&>(*pNode)); else pNode->DrawPost(cRenderer); } } }