diff options
author | 2007-12-24 07:39:36 +0000 | |
---|---|---|
committer | 2007-12-24 07:39:36 +0000 | |
commit | f27de85b8e4a9b1afaf2b384b517379224311894 (patch) | |
tree | aef8b0706c03eba5103a5dbcbea589f640c38851 /src/emu/render.c | |
parent | 707e623381b64e968fb5b754febd1a69fef138d6 (diff) |
1. Added assertion to append_render_primitive() to test for degenerate case
2. Added check that seems to occur on screenless systems
Diffstat (limited to 'src/emu/render.c')
-rw-r--r-- | src/emu/render.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/src/emu/render.c b/src/emu/render.c index 1dce606007c..7a341b22b5a 100644 --- a/src/emu/render.c +++ b/src/emu/render.c @@ -385,6 +385,9 @@ INLINE render_primitive *alloc_render_primitive(int type) INLINE void append_render_primitive(render_primitive_list *list, render_primitive *prim) { + assert(prim->bounds.x0 <= prim->bounds.x1); + assert(prim->bounds.y0 <= prim->bounds.y1); + *list->nextptr = prim; list->nextptr = &prim->next; } @@ -1531,12 +1534,15 @@ const render_primitive_list *render_target_get_primitives(render_target *target) prim->flags = PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA); append_render_primitive(&target->primlist[listnum], prim); - prim = alloc_render_primitive(RENDER_PRIMITIVE_QUAD); - set_render_bounds_xy(&prim->bounds, 1.0f, 1.0f, (float)(target->width - 1), (float)(target->height - 1)); - set_render_color(&prim->color, 1.0f, 0.0f, 0.0f, 0.0f); - prim->texture.base = NULL; - prim->flags = PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA); - append_render_primitive(&target->primlist[listnum], prim); + if ((target->width > 1) && (target->height > 1)) + { + prim = alloc_render_primitive(RENDER_PRIMITIVE_QUAD); + set_render_bounds_xy(&prim->bounds, 1.0f, 1.0f, (float)(target->width - 1), (float)(target->height - 1)); + set_render_color(&prim->color, 1.0f, 0.0f, 0.0f, 0.0f); + prim->texture.base = NULL; + prim->flags = PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA); + append_render_primitive(&target->primlist[listnum], prim); + } } /* process the UI if we are the UI target */ |