summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd
diff options
context:
space:
mode:
author Michaël Banaan Ananas <happppp@users.noreply.github.com>2013-11-11 18:53:55 +0000
committer Michaël Banaan Ananas <happppp@users.noreply.github.com>2013-11-11 18:53:55 +0000
commitae2f75974ffac25f9695c2b82015a643495f6d62 (patch)
tree77cb41518c47e7fca3c86afb9d2925f6768527e6 /src/osd
parent9ef9fbf72a59b16b8b70e4f3ae804e76b0474d64 (diff)
batch vectors at the right time in queue
Diffstat (limited to 'src/osd')
-rw-r--r--src/osd/windows/drawd3d.c10
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)