改造一些
This commit is contained in:
@@ -328,11 +328,11 @@ Size Plot_Core::viewport_size() const noexcept {
|
||||
}
|
||||
|
||||
void Plot_Core::dispatch_event(const Event& event) {
|
||||
const auto topology = with_scene(impl_->scene, [](const auto& scene) {
|
||||
return scene.topology_snapshot();
|
||||
const auto paint_order = with_scene(impl_->scene, [](const auto& scene) {
|
||||
return scene.paint_order_snapshot();
|
||||
});
|
||||
for (auto iterator = topology.display.rbegin(); iterator != topology.display.rend(); ++iterator) {
|
||||
auto base = std::const_pointer_cast<::Renderable_Base>(iterator->child);
|
||||
for (auto iterator = paint_order.rbegin(); iterator != paint_order.rend(); ++iterator) {
|
||||
auto base = std::const_pointer_cast<::Renderable_Base>(*iterator);
|
||||
if (auto renderable = std::dynamic_pointer_cast<Renderable>(base)) {
|
||||
if (renderable->is_visible()) {
|
||||
if (auto handler = std::dynamic_pointer_cast<Event_Handler>(base))
|
||||
@@ -354,8 +354,8 @@ bool Plot_Core::prepare_frame() {
|
||||
if (!paint_frame)
|
||||
return false;
|
||||
const auto topology = scene.topology_snapshot();
|
||||
for (const auto& entry : topology.display) {
|
||||
auto base = std::const_pointer_cast<::Renderable_Base>(entry.child);
|
||||
for (const auto& renderable : topology.renderables) {
|
||||
auto base = std::const_pointer_cast<::Renderable_Base>(renderable);
|
||||
if (auto state = std::dynamic_pointer_cast<::State_Strategy_Base>(base))
|
||||
state->publish();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user