OLD | NEW |
1 /* Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 /* Copyright (c) 2013 The Chromium Authors. All rights reserved. |
2 * Use of this source code is governed by a BSD-style license that can be | 2 * Use of this source code is governed by a BSD-style license that can be |
3 * found in the LICENSE file. | 3 * found in the LICENSE file. |
4 */ | 4 */ |
5 | 5 |
6 #include <assert.h> | 6 #include <assert.h> |
7 #include <stdio.h> | 7 #include <stdio.h> |
8 #include <stdlib.h> | 8 #include <stdlib.h> |
9 #include <string.h> | 9 #include <string.h> |
10 | 10 |
(...skipping 24 matching lines...) Expand all Loading... |
35 PP_Resource ctx; | 35 PP_Resource ctx; |
36 struct PP_Size size; | 36 struct PP_Size size; |
37 int bound; | 37 int bound; |
38 uint8_t* cell_in; | 38 uint8_t* cell_in; |
39 uint8_t* cell_out; | 39 uint8_t* cell_out; |
40 } g_Context; | 40 } g_Context; |
41 | 41 |
42 | 42 |
43 const unsigned int kInitialRandSeed = 0xC0DE533D; | 43 const unsigned int kInitialRandSeed = 0xC0DE533D; |
44 | 44 |
45 #define MakeRGBA(r, g, b, a) \ | 45 /* BGRA helper macro, for constructing a pixel for a BGRA buffer. */ |
| 46 #define MakeBGRA(b, g, r, a) \ |
46 (((a) << 24) | ((r) << 16) | ((g) << 8) | (b)) | 47 (((a) << 24) | ((r) << 16) | ((g) << 8) | (b)) |
47 | 48 |
48 | 49 |
49 /* | 50 /* |
50 * Given a count of cells in a 3x3 grid where cells are worth 1 except for | 51 * Given a count of cells in a 3x3 grid where cells are worth 1 except for |
51 * the center which is worth 9, this is a color representation of how | 52 * the center which is worth 9, this is a color representation of how |
52 * "alive" that cell is making for a more interesting representation than | 53 * "alive" that cell is making for a more interesting representation than |
53 * a binary alive or dead. | 54 * a binary alive or dead. |
54 */ | 55 */ |
55 const uint32_t kNeighborColors[] = { | 56 const uint32_t kNeighborColors[] = { |
56 MakeRGBA(0x00, 0x00, 0x00, 0xff), | 57 MakeBGRA(0x00, 0x00, 0x00, 0xff), |
57 MakeRGBA(0x00, 0x40, 0x00, 0xff), | 58 MakeBGRA(0x00, 0x40, 0x00, 0xff), |
58 MakeRGBA(0x00, 0x60, 0x00, 0xff), | 59 MakeBGRA(0x00, 0x60, 0x00, 0xff), |
59 MakeRGBA(0x00, 0x80, 0x00, 0xff), | 60 MakeBGRA(0x00, 0x80, 0x00, 0xff), |
60 MakeRGBA(0x00, 0xA0, 0x00, 0xff), | 61 MakeBGRA(0x00, 0xA0, 0x00, 0xff), |
61 MakeRGBA(0x00, 0xC0, 0x00, 0xff), | 62 MakeBGRA(0x00, 0xC0, 0x00, 0xff), |
62 MakeRGBA(0x00, 0xE0, 0x00, 0xff), | 63 MakeBGRA(0x00, 0xE0, 0x00, 0xff), |
63 MakeRGBA(0x00, 0x00, 0x00, 0xff), | 64 MakeBGRA(0x00, 0x00, 0x00, 0xff), |
64 MakeRGBA(0x00, 0x40, 0x00, 0xff), | 65 MakeBGRA(0x00, 0x40, 0x00, 0xff), |
65 MakeRGBA(0x00, 0x60, 0x00, 0xff), | 66 MakeBGRA(0x00, 0x60, 0x00, 0xff), |
66 MakeRGBA(0x00, 0x80, 0x00, 0xff), | 67 MakeBGRA(0x00, 0x80, 0x00, 0xff), |
67 MakeRGBA(0x00, 0xA0, 0x00, 0xff), | 68 MakeBGRA(0x00, 0xA0, 0x00, 0xff), |
68 MakeRGBA(0x00, 0xC0, 0x00, 0xff), | 69 MakeBGRA(0x00, 0xC0, 0x00, 0xff), |
69 MakeRGBA(0x00, 0xE0, 0x00, 0xff), | 70 MakeBGRA(0x00, 0xE0, 0x00, 0xff), |
70 MakeRGBA(0x00, 0xFF, 0x00, 0xff), | 71 MakeBGRA(0x00, 0xFF, 0x00, 0xff), |
71 MakeRGBA(0x00, 0xFF, 0x00, 0xff), | 72 MakeBGRA(0x00, 0xFF, 0x00, 0xff), |
72 MakeRGBA(0x00, 0xFF, 0x00, 0xff), | 73 MakeBGRA(0x00, 0xFF, 0x00, 0xff), |
73 MakeRGBA(0x00, 0xFF, 0x00, 0xff), | 74 MakeBGRA(0x00, 0xFF, 0x00, 0xff), |
74 }; | 75 }; |
75 | 76 |
76 /* | 77 /* |
77 * These represent the new health value of a cell based on its neighboring | 78 * These represent the new health value of a cell based on its neighboring |
78 * values. The health is binary: either alive or dead. | 79 * values. The health is binary: either alive or dead. |
79 */ | 80 */ |
80 const uint8_t kIsAlive[] = { | 81 const uint8_t kIsAlive[] = { |
81 0, 0, 0, 1, 0, 0, 0, 0, 0, /* Values if the center cell is dead. */ | 82 0, 0, 0, 1, 0, 0, 0, 0, 0, /* Values if the center cell is dead. */ |
82 0, 0, 1, 1, 0, 0, 0, 0, 0 /* Values if the center cell is alive. */ | 83 0, 0, 1, 1, 0, 0, 0, 0, 0 /* Values if the center cell is alive. */ |
83 }; | 84 }; |
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
296 } | 297 } |
297 } | 298 } |
298 return 0; | 299 return 0; |
299 } | 300 } |
300 | 301 |
301 /* | 302 /* |
302 * Register the function to call once the Instance Object is initialized. | 303 * Register the function to call once the Instance Object is initialized. |
303 * see: pappi_simple/ps_main.h | 304 * see: pappi_simple/ps_main.h |
304 */ | 305 */ |
305 PPAPI_SIMPLE_REGISTER_MAIN(example_main); | 306 PPAPI_SIMPLE_REGISTER_MAIN(example_main); |
OLD | NEW |