Fix rendering buffer handling
[mercenary-reloaded.git] / src / mercenary / render.c
index 37380db..5ac62a9 100644 (file)
@@ -2478,8 +2478,9 @@ static void interpolate_objects(double inter)
 /* always renders NEW! items
  * use inter == 1.0 to render motion to vertices of NEW items
  * use inter 0.0 .. 1.0 to interpolate motion between OLD and NEW items
+ * return 0, if the scene was rendered, returns < 0, if there is no scene
  */
-void render_all_items(double inter)
+int render_all_items(double inter)
 {
        render_item_object_info = NULL;
        render_item_vertices_0 = render_item_vertices_1 = render_item_vertices_2 = NULL;
@@ -2529,21 +2530,15 @@ void render_all_items(double inter)
                interpolate_objects(inter);
        }
 
-       /* add a blank background, if render list is empty */
-       if (!render_list_new) {
-               render_item_t blank;
-               memset(&blank, 0, sizeof(blank));
-               blank.type = RENDER_ITEM_SKY;
-               blank.u.sky.red = 0.5;
-               blank.u.sky.green = 0.5;
-               blank.u.sky.blue = 0.5;
-               render_one_item(&blank);
-               return;
-       }
+       /* return failure, if nothing can be rendered */
+       if (!render_list_new)
+               return -1;
 
        for (render_item = render_list_new; render_item; render_item = render_item->next) {
                render_one_item(render_item);
        }
+
+       return 0;
 }
 
 void render_capture_reset(void)