diff options
| author | 2013-11-11 18:53:55 +0000 | |
|---|---|---|
| committer | 2013-11-11 18:53:55 +0000 | |
| commit | ae2f75974ffac25f9695c2b82015a643495f6d62 (patch) | |
| tree | 77cb41518c47e7fca3c86afb9d2925f6768527e6 /src/osd | |
| parent | 9ef9fbf72a59b16b8b70e4f3ae804e76b0474d64 (diff) | |
batch vectors at the right time in queue
Diffstat (limited to 'src/osd')
| -rw-r--r-- | src/osd/windows/drawd3d.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/osd/windows/drawd3d.c b/src/osd/windows/drawd3d.c index a780095342f..251c772e274 100644 --- a/src/osd/windows/drawd3d.c +++ b/src/osd/windows/drawd3d.c @@ -777,6 +777,7 @@ mtlog_add("drawd3d_window_draw: begin_scene"); } m_line_count = 0; + // loop over primitives for (render_primitive *prim = m_window->primlist->first(); prim != NULL; prim = prim->next()) if (prim->type == render_primitive::LINE && PRIMFLAG_GET_VECTOR(prim->flags)) @@ -793,7 +794,10 @@ void renderer::process_primitives() case render_primitive::LINE: if (PRIMFLAG_GET_VECTOR(prim->flags)) { - continue; + if (m_line_count > 0) + batch_vectors(); + else + continue; } else { @@ -809,8 +813,6 @@ void renderer::process_primitives() throw emu_fatalerror("Unexpected render_primitive type"); } } - - batch_vectors(); } void renderer::end_frame() @@ -1483,6 +1485,8 @@ void renderer::batch_vectors() { start_index %= m_line_count; } + + m_line_count = 0; } void renderer::batch_vector(const render_primitive *prim, float line_time) |
