static void diffuse(struct smoke *smoke, uint32_t time,
float *source, float *dest)
{
- cairo_t *cr;
float *s, *d;
int x, y, k, stride;
float t, a = 0.0002;
static void advect(struct smoke *smoke, uint32_t time,
float *uu, float *vv, float *source, float *dest)
{
- cairo_t *cr;
float *s, *d;
float *u, *v;
- int x, y, k, stride;
+ int x, y, stride;
int i, j;
float px, py, fx, fy;
float *u, float *v, float *p, float *div)
{
int x, y, k, l, s;
- float h, *d, *q;
+ float h;
h = 1.0 / smoke->width;
s = smoke->width;
static void render(struct smoke *smoke)
{
- cairo_t *cr;
- unsigned char *source, *dest;
+ unsigned char *dest;
int x, y, width, height, stride;
- int k, t;
float *s;
uint32_t *d, c, a;
static void
frame_callback(void *data, uint32_t time)
{
- cairo_surface_t *t;
struct smoke *smoke = data;
- static int i;
diffuse(smoke, time / 30, smoke->b[0].u, smoke->b[1].u);
diffuse(smoke, time / 30, smoke->b[0].v, smoke->b[1].v);
struct timespec ts;
struct smoke smoke;
struct display *d;
- int size, x, y;
+ int size;
d = display_create(&argc, &argv, NULL);
EGLDisplay dpy = display->dpy;
cairo_surface_t *surface;
struct wl_visual *visual;
- struct wl_buffer *buffer;
EGLint name, stride;
EGLint image_attribs[] = {
struct shm_surface_data *data;
cairo_surface_t *surface;
struct wl_visual *visual;
- int stride, alloc, fd;
+ int stride, fd;
char filename[] = "/tmp/wayland-shm-XXXXXX";
data = malloc(sizeof *data);