dark theme

Eenvaders: an animated wallpaper for enlightenment

While browsing levitated.net which is an interesting site with lots of original flash animations, I stumbled across Invader.fractal. I wanted to make the same as a wallpaper for enlightenment.

A bit of code

I've put all the code on github.

In order for the wallpaper to be fast and use low ressources, I decided to have an evas smart object used inside an edje external module. That module is then used in a very small edc file making it a background usable by enlightenment.

In order to draw a 7x7 random eenvader, here's the code:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
#define FG 0xff839496
uint16_t u = rand();
int *mem = calloc(7 * 7, sizeof(int));

for (int i = 0; i < 15; i++) {
    if (u & (1 << i)) {
        mem[7 + 7*(i/3) + 1 + i%3] = FG;
        mem[7 + 7*(i/3) + 5 - i%3] = FG;
    }
}

I let my C compiler unroll the loop and optimise the code for me.

What does it look like?

I use colors from solarized.

eenvarders screenshot

And if you click and kill the big one on the left, here's what you get:

eenvarders screenshot with the big one on the left killed

The wallpaper is refreshed every 30 seconds.

blog comments powered by Disqus

If you enjoyed this article, feel free to Flattr this.