bool RenderObject::render() { // Objektänderungen validieren validateObject(); // Falls das Objekt nicht sichtbar ist, muss gar nichts gezeichnet werden if (!_visible) return true; // Falls notwendig, wird die Renderreihenfolge der Kinderobjekte aktualisiert. if (_childChanged) { sortRenderObjects(); _childChanged = false; } // Objekt zeichnen. doRender(); // Dann müssen die Kinder gezeichnet werden RENDEROBJECT_ITER it = _children.begin(); for (; it != _children.end(); ++it) if (!(*it)->render()) return false; return true; }
void RenderObject::preRender(RenderObjectQueue *renderQueue) { // Objektänderungen validieren validateObject(); if (!_visible) return; // Falls notwendig, wird die Renderreihenfolge der Kinderobjekte aktualisiert. if (_childChanged) { sortRenderObjects(); _childChanged = false; } renderQueue->add(this); RENDEROBJECT_ITER it = _children.begin(); for (; it != _children.end(); ++it) (*it)->preRender(renderQueue); }