| Index: native_client_sdk/src/examples/demo/life/life.c
|
| diff --git a/native_client_sdk/src/examples/demo/life/life.c b/native_client_sdk/src/examples/demo/life/life.c
|
| index d9d9def3fbccf998fb2623cdab182860b2970cc3..6bd28b543cff1c572e973ba6fdebf66b46d4c285 100644
|
| --- a/native_client_sdk/src/examples/demo/life/life.c
|
| +++ b/native_client_sdk/src/examples/demo/life/life.c
|
| @@ -49,30 +49,27 @@ const unsigned int kInitialRandSeed = 0xC0DE533D;
|
|
|
|
|
| /*
|
| - * Given a count of cells in a 3x3 grid where cells are worth 1 except for
|
| - * the center which is worth 9, this is a color representation of how
|
| - * "alive" that cell is making for a more interesting representation than
|
| - * a binary alive or dead.
|
| + * Convert a count value into a live (green) or dead color value.
|
| */
|
| const uint32_t kNeighborColors[] = {
|
| - MakeBGRA(0x00, 0x00, 0x00, 0xff),
|
| - MakeBGRA(0x00, 0x40, 0x00, 0xff),
|
| - MakeBGRA(0x00, 0x60, 0x00, 0xff),
|
| - MakeBGRA(0x00, 0x80, 0x00, 0xff),
|
| - MakeBGRA(0x00, 0xA0, 0x00, 0xff),
|
| - MakeBGRA(0x00, 0xC0, 0x00, 0xff),
|
| - MakeBGRA(0x00, 0xE0, 0x00, 0xff),
|
| - MakeBGRA(0x00, 0x00, 0x00, 0xff),
|
| - MakeBGRA(0x00, 0x40, 0x00, 0xff),
|
| - MakeBGRA(0x00, 0x60, 0x00, 0xff),
|
| - MakeBGRA(0x00, 0x80, 0x00, 0xff),
|
| - MakeBGRA(0x00, 0xA0, 0x00, 0xff),
|
| - MakeBGRA(0x00, 0xC0, 0x00, 0xff),
|
| - MakeBGRA(0x00, 0xE0, 0x00, 0xff),
|
| - MakeBGRA(0x00, 0xFF, 0x00, 0xff),
|
| - MakeBGRA(0x00, 0xFF, 0x00, 0xff),
|
| - MakeBGRA(0x00, 0xFF, 0x00, 0xff),
|
| - MakeBGRA(0x00, 0xFF, 0x00, 0xff),
|
| + MakeBGRA(0x00, 0x00, 0x00, 0xFF),
|
| + MakeBGRA(0x00, 0x00, 0x00, 0xFF),
|
| + MakeBGRA(0x00, 0x00, 0x00, 0xFF),
|
| + MakeBGRA(0x00, 0x00, 0x00, 0xFF),
|
| + MakeBGRA(0x00, 0x00, 0x00, 0xFF),
|
| + MakeBGRA(0x00, 0xFF, 0x00, 0xFF),
|
| + MakeBGRA(0x00, 0xFF, 0x00, 0xFF),
|
| + MakeBGRA(0x00, 0xFF, 0x00, 0xFF),
|
| + MakeBGRA(0x00, 0x00, 0x00, 0xFF),
|
| + MakeBGRA(0x00, 0x00, 0x00, 0xFF),
|
| + MakeBGRA(0x00, 0x00, 0x00, 0xFF),
|
| + MakeBGRA(0x00, 0x00, 0x00, 0xFF),
|
| + MakeBGRA(0x00, 0x00, 0x00, 0xFF),
|
| + MakeBGRA(0x00, 0x00, 0x00, 0xFF),
|
| + MakeBGRA(0x00, 0x00, 0x00, 0xFF),
|
| + MakeBGRA(0x00, 0x00, 0x00, 0xFF),
|
| + MakeBGRA(0x00, 0x00, 0x00, 0xFF),
|
| + MakeBGRA(0x00, 0x00, 0x00, 0xFF),
|
| };
|
|
|
| /*
|
| @@ -80,8 +77,8 @@ const uint32_t kNeighborColors[] = {
|
| * values. The health is binary: either alive or dead.
|
| */
|
| const uint8_t kIsAlive[] = {
|
| - 0, 0, 0, 1, 0, 0, 0, 0, 0, /* Values if the center cell is dead. */
|
| - 0, 0, 1, 1, 0, 0, 0, 0, 0 /* Values if the center cell is alive. */
|
| + 0, 0, 0, 0, 0, 1, 1, 1, 0,
|
| + 0, 0, 0, 0, 0, 0, 0, 0, 0
|
| };
|
|
|
| void UpdateContext(uint32_t width, uint32_t height) {
|
| @@ -252,12 +249,14 @@ void Render() {
|
| uint32_t *pixel_line = (uint32_t*) (pixels + y * desc.stride);
|
|
|
| for (x = 1; x < (desc.size.width - 1); ++x) {
|
| - /* Build sum, weight center by 9x. */
|
| - count = src0[-1] + src0[0] + src0[1] +
|
| - src1[-1] + src1[0] * 9 + src1[1] +
|
| - src2[-1] + src2[0] + src2[1];
|
| + /* Jitter and sum neighbors. */
|
| + count = src0[-1] + src0[0] + src0[1] +
|
| + src1[-1] + + src1[1] +
|
| + src2[-1] + src2[0] + src2[1];
|
| + /* Include center cell. */
|
| + count = count + count + src1[0];
|
| + /* Use table lookup indexed by count to determine pixel & alive state. */
|
| color = kNeighborColors[count];
|
| -
|
| *pixel_line++ = color;
|
| *dst++ = kIsAlive[count];
|
| ++src0;
|
|
|