diff options
| author | 2020-06-27 14:09:56 +0200 | |
|---|---|---|
| committer | 2020-06-27 14:09:56 +0200 | |
| commit | 15c1b81f5c33f1a852a3b9bc71561ac8f48de72d (patch) | |
| tree | cbca5960e38c411e9b3defb5a3b6682ecc4da7bb /src/emu/rendlay.cpp | |
| parent | 6443f8257cf727bbb6ff020fe9b1383db324823e (diff) | |
-render: Added optional per-frame update support to layout elements. [Ryan Holtz]rendlay_vid
Diffstat (limited to 'src/emu/rendlay.cpp')
| -rw-r--r-- | src/emu/rendlay.cpp | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/src/emu/rendlay.cpp b/src/emu/rendlay.cpp index 87b84b8c7f0..a233e24d305 100644 --- a/src/emu/rendlay.cpp +++ b/src/emu/rendlay.cpp @@ -1195,13 +1195,31 @@ render_texture *layout_element::state_texture(int state) { m_elemtex[state].m_element = this; m_elemtex[state].m_state = state; - m_elemtex[state].m_texture = machine().render().texture_alloc(element_scale, &m_elemtex[state]); + m_elemtex[state].m_texture = machine().render().texture_alloc(element_scale, &m_elemtex[state], element_dirty); } return m_elemtex[state].m_texture; } //------------------------------------------------- +// element_dirty - return whether or not any +// given components in the element needs an +// update +//------------------------------------------------- + +bool layout_element::element_dirty(void *dirty_param) +{ + texture* elemtex = (texture *)dirty_param; + + // iterate over components that are part of the current state + for (auto& curcomp : elemtex->m_element->m_complist) + if (curcomp->is_dirty()) + return true; + + return false; +} + +//------------------------------------------------- // element_scale - scale an element by rendering // all the components at the appropriate // resolution @@ -1328,6 +1346,8 @@ public: m_file = std::make_unique<emu_file>(env.machine().options().art_path(), OPEN_FLAG_READ); } + bool is_dirty() const override { return true; } + protected: // overrides virtual void draw(running_machine &machine, bitmap_argb32 &dest, const rectangle &bounds, int state) override |
