+ delete image;
+}
+
+void
+Background::write(LispWriter& writer)
+{
+ if(type == INVALID)
+ return;
+
+ writer.start_list("background");
+
+ if(type == IMAGE) {
+ writer.write_string("image", imagefile);
+ writer.write_float("speed", speed);
+ } else if(type == GRADIENT) {
+ std::vector <unsigned int> bkgd_top_color, bkgd_bottom_color;
+ bkgd_top_color.push_back(gradient_top.red);
+ bkgd_top_color.push_back(gradient_top.green);
+ bkgd_top_color.push_back(gradient_top.blue);
+ bkgd_bottom_color.push_back(gradient_top.red);
+ bkgd_bottom_color.push_back(gradient_top.green);
+ bkgd_bottom_color.push_back(gradient_top.blue);
+ writer.write_int_vector("top_color", bkgd_top_color);
+ writer.write_int_vector("bottom_color", bkgd_bottom_color);
+ }
+ writer.write_int("layer", layer);
+
+ writer.end_list("background");