summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/rendlay.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/rendlay.cpp')
-rw-r--r--src/emu/rendlay.cpp41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/emu/rendlay.cpp b/src/emu/rendlay.cpp
index 46124cf73f6..422b93e7268 100644
--- a/src/emu/rendlay.cpp
+++ b/src/emu/rendlay.cpp
@@ -4214,8 +4214,46 @@ void layout_view::recompute(u32 visibility_mask, bool zoom_to_screen)
for (edge const &e : m_interactive_edges_y)
LOGMASKED(LOG_INTERACTIVE_ITEMS, "y=%s %c%u\n", e.position(), e.trailing() ? ']' : '[', e.index());
}
+
+ // additional actions typically supplied by script
+ if (!m_recomputed.isnull())
+ m_recomputed();
+}
+
+
+//-------------------------------------------------
+// set_prepare_items_callback - set handler called
+// before adding items to render target
+//-------------------------------------------------
+
+void layout_view::set_prepare_items_callback(prepare_items_delegate &&handler)
+{
+ m_prepare_items = std::move(handler);
+}
+
+
+//-------------------------------------------------
+// set_preload_callback - set handler called
+// after preloading elements
+//-------------------------------------------------
+
+void layout_view::set_preload_callback(preload_delegate &&handler)
+{
+ m_preload = std::move(handler);
+}
+
+
+//-------------------------------------------------
+// set_recomputed_callback - set handler called
+// after recomputing item bounds
+//-------------------------------------------------
+
+void layout_view::set_recomputed_callback(recomputed_delegate &&handler)
+{
+ m_recomputed = std::move(handler);
}
+
//-------------------------------------------------
// preload - perform expensive loading upfront
// for visible elements
@@ -4228,6 +4266,9 @@ void layout_view::preload()
if (curitem.element())
curitem.element()->preload();
}
+
+ if (!m_preload.isnull())
+ m_preload();
}