summaryrefslogtreecommitdiff
path: root/src/post/goom/surface.c
blob: 59bdf019e84b78969895184c5f5e73b5c2937193 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include "surface.h"
#include <stdlib.h>
#include <inttypes.h>

Surface * surface_new (int w, int h) {
  Surface * s = (Surface*)malloc(sizeof(Surface));
  s->realstart = (int*)malloc(w*h*4 + 128);
  s->buf = (int*)((uintptr_t)s->realstart + 128 - (((uintptr_t)s->realstart) % 128));
  s->size = w*h;
  s->width = w;
  s->height = h;
  return s;
}

void surface_delete (Surface **s) {
  free ((*s)->realstart);
  free (*s);
  *s = NULL;
}