+ if(!erb) return;
+ free(erb->fb_pixels);
+ free(erb);
+}
+
+int erb_allocframe(struct erb_rend *erb, int width, int height)
+{
+ float *newfb;
+ int *newns;
+ int npix;
+
+ if(width == erb->fb_width && height == erb->fb_height) {
+ return 0;
+ }
+
+ npix = width * height;
+
+ if(!(newfb = malloc(npix * 3 * sizeof *erb->fb_pixels))) {
+ goto err;
+ }
+ if(!(newns = malloc(npix * sizeof *erb->fb_nsamples))) {
+ free(newfb);
+ goto err;
+ }
+
+ free(erb->fb_pixels);
+ free(erb->fb_nsamples);
+
+ erb->fb_pixels = newfb;
+ erb->fb_nsamples = newns;
+ erb->fb_width = width;
+ erb->fb_height = height;
+ erb->fb_npix = npix;