ray 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (167) hide show
  1. data/README.md +9 -6
  2. data/Rakefile +1 -5
  3. data/ext/audio.c +25 -19
  4. data/ext/audio_source.c +67 -39
  5. data/ext/color.c +19 -19
  6. data/ext/drawable.c +190 -31
  7. data/ext/extconf.rb +16 -14
  8. data/ext/gl.c +310 -30
  9. data/ext/gl_buffer.c +223 -2
  10. data/ext/gl_index_buffer.c +11 -0
  11. data/ext/gl_int_array.c +24 -22
  12. data/ext/gl_vertex.c +84 -49
  13. data/ext/image.c +115 -51
  14. data/ext/image_target.c +58 -10
  15. data/ext/input.c +73 -6
  16. data/ext/mo.c +583 -0
  17. data/ext/mo.h +189 -0
  18. data/ext/music.c +9 -8
  19. data/ext/pixel_bus.c +349 -0
  20. data/ext/polygon.c +68 -45
  21. data/ext/ray.c +1 -0
  22. data/ext/ray.h +19 -1
  23. data/ext/rect.c +9 -47
  24. data/ext/say.h +1 -2
  25. data/ext/say_all.h +6 -0
  26. data/ext/say_audio.h +3 -0
  27. data/ext/say_audio_context.c +1 -4
  28. data/ext/say_basic_type.c +24 -0
  29. data/ext/say_basic_type.h +4 -0
  30. data/ext/say_buffer.c +217 -88
  31. data/ext/say_buffer.h +20 -5
  32. data/ext/say_buffer_renderer.c +10 -7
  33. data/ext/say_buffer_renderer.h +1 -1
  34. data/ext/say_buffer_slice.c +70 -76
  35. data/ext/say_context.c +109 -22
  36. data/ext/say_context.h +14 -0
  37. data/ext/say_drawable.c +113 -25
  38. data/ext/say_drawable.h +23 -2
  39. data/ext/say_error.c +7 -2
  40. data/ext/say_font.c +30 -27
  41. data/ext/say_font.h +3 -6
  42. data/ext/say_get_proc.c +35 -0
  43. data/ext/say_image.c +102 -27
  44. data/ext/say_image.h +11 -4
  45. data/ext/say_image_target.c +88 -34
  46. data/ext/say_image_target.h +3 -2
  47. data/ext/say_index_buffer.c +31 -19
  48. data/ext/say_index_buffer.h +4 -2
  49. data/ext/say_index_buffer_slice.c +78 -70
  50. data/ext/say_music.c +4 -2
  51. data/ext/say_osx.h +3 -2
  52. data/ext/say_osx_context.h +37 -4
  53. data/ext/say_osx_window.h +32 -37
  54. data/ext/say_pixel_bus.c +163 -0
  55. data/ext/say_pixel_bus.h +44 -0
  56. data/ext/say_polygon.c +2 -2
  57. data/ext/say_shader.c +66 -62
  58. data/ext/say_shader.h +2 -0
  59. data/ext/say_sprite.c +1 -2
  60. data/ext/say_target.c +14 -23
  61. data/ext/say_target.h +3 -1
  62. data/ext/say_text.c +45 -7
  63. data/ext/say_text.h +12 -3
  64. data/ext/say_thread.c +13 -6
  65. data/ext/say_thread.h +1 -1
  66. data/ext/say_thread_variable.c +5 -5
  67. data/ext/say_vertex_type.c +79 -41
  68. data/ext/say_vertex_type.h +6 -2
  69. data/ext/say_view.c +10 -31
  70. data/ext/say_view.h +1 -5
  71. data/ext/say_win.h +2 -2
  72. data/ext/say_win_context.h +49 -11
  73. data/ext/say_win_window.h +30 -27
  74. data/ext/say_window.c +3 -3
  75. data/ext/say_x11.h +3 -1
  76. data/ext/say_x11_context.h +64 -10
  77. data/ext/say_x11_window.h +22 -17
  78. data/ext/shader.c +9 -0
  79. data/ext/sprite.c +7 -1
  80. data/ext/target.c +80 -28
  81. data/ext/text.c +43 -1
  82. data/ext/view.c +53 -1
  83. data/ext/window.c +4 -0
  84. data/lib/ray/animation_list.rb +17 -2
  85. data/lib/ray/audio_source.rb +11 -0
  86. data/lib/ray/color.rb +14 -0
  87. data/lib/ray/drawable.rb +23 -0
  88. data/lib/ray/dsl/event.rb +1 -9
  89. data/lib/ray/dsl/event_runner.rb +3 -4
  90. data/lib/ray/dsl/matcher.rb +20 -1
  91. data/lib/ray/effect.rb +116 -0
  92. data/lib/ray/effect/black_and_white.rb +38 -0
  93. data/lib/ray/effect/color_inversion.rb +16 -0
  94. data/lib/ray/effect/generator.rb +145 -0
  95. data/lib/ray/effect/grayscale.rb +32 -0
  96. data/lib/ray/game.rb +25 -5
  97. data/lib/ray/gl/vertex.rb +105 -26
  98. data/lib/ray/helper.rb +5 -0
  99. data/lib/ray/image.rb +54 -13
  100. data/lib/ray/image_target.rb +7 -0
  101. data/lib/ray/matrix.rb +26 -0
  102. data/lib/ray/music.rb +4 -0
  103. data/lib/ray/pixel_bus.rb +22 -0
  104. data/lib/ray/polygon.rb +17 -0
  105. data/lib/ray/pp.rb +28 -0
  106. data/lib/ray/ray.rb +7 -1
  107. data/lib/ray/rect.rb +7 -13
  108. data/lib/ray/scene.rb +24 -5
  109. data/lib/ray/scene_list.rb +9 -0
  110. data/lib/ray/shader.rb +11 -2
  111. data/lib/ray/sound.rb +4 -0
  112. data/lib/ray/sprite.rb +23 -62
  113. data/lib/ray/target.rb +25 -0
  114. data/lib/ray/text.rb +10 -0
  115. data/lib/ray/turtle.rb +9 -3
  116. data/lib/ray/vector.rb +18 -0
  117. data/lib/ray/vertex.rb +6 -0
  118. data/lib/ray/view.rb +22 -0
  119. data/samples/animation/sprite_motion.rb +0 -60
  120. data/samples/audio/{spacial.rb → spatial.rb} +1 -1
  121. data/samples/buffer/buffer.rb +1 -0
  122. data/samples/buffer/index_buffer.rb +2 -0
  123. data/samples/cptn_ruby/cptn_ruby.rb +6 -7
  124. data/samples/effects/effect.rb +39 -0
  125. data/samples/effects/grayscale.rb +27 -0
  126. data/samples/opengl/image.rb +7 -5
  127. data/samples/opengl/instancing.rb +159 -0
  128. data/samples/opengl/instancing.rbc +3231 -0
  129. data/samples/opengl/obj_loader.rb +9 -8
  130. data/samples/opengl/shader.rb +1 -3
  131. data/samples/shaders/geometry.rb +108 -38
  132. data/samples/shaders/geometry.rbc +2074 -0
  133. data/samples/shaders/shape.rb +2 -2
  134. data/samples/starfighter/starfighter.rb +5 -5
  135. data/samples/window/get_pixel.rb +1 -1
  136. data/test/animation_list_test.rb +18 -4
  137. data/test/drawable_test.rb +70 -1
  138. data/test/effect_generator_test.rb +63 -0
  139. data/test/effect_test.rb +61 -0
  140. data/test/game_test.rb +18 -0
  141. data/test/gl_buffer_test.rb +43 -1
  142. data/test/gl_index_buffer_test.rb +5 -0
  143. data/test/gl_vertex_test.rb +28 -1
  144. data/test/image_test.rb +5 -5
  145. data/test/input_test.rb +49 -0
  146. data/test/pixel_bus_test.rb +28 -0
  147. data/test/rect_test.rb +4 -0
  148. data/{samples/_media → test/res}/Beep.wav +0 -0
  149. data/samples/_media/CptnRuby Gem.png b/data/test/res/CptnRuby → Gem.png +0 -0
  150. data/samples/_media/CptnRuby Map.txt b/data/test/res/CptnRuby → Map.txt +0 -0
  151. data/samples/_media/CptnRuby Tileset.png b/data/test/res/CptnRuby → Tileset.png +0 -0
  152. data/{samples/_media → test/res}/CptnRuby.png +0 -0
  153. data/{samples/_media → test/res}/Space.png +0 -0
  154. data/{samples/_media → test/res}/Star.png +0 -0
  155. data/{samples/_media → test/res}/Starfighter.png +0 -0
  156. data/test/res/cube.obj +28 -0
  157. data/test/res/light3d.c +2 -2
  158. data/test/res/stone.png +0 -0
  159. data/test/scene_test.rb +3 -0
  160. data/test/sprite_test.rb +10 -0
  161. data/test/text_test.rb +31 -2
  162. data/test/view_test.rb +13 -1
  163. metadata +38 -17
  164. data/ext/say_array.c +0 -124
  165. data/ext/say_array.h +0 -34
  166. data/ext/say_table.c +0 -86
  167. data/ext/say_table.h +0 -24
@@ -1,124 +0,0 @@
1
- #include "say.h"
2
-
3
- say_array *say_array_create(size_t size_el, say_destructor dtor,
4
- say_creator ctor) {
5
- say_array *ary = malloc(sizeof(say_array));
6
-
7
- ary->elem_size = size_el;
8
-
9
- ary->create = ctor;
10
- ary->destroy = dtor;
11
-
12
- ary->buf = malloc(ary->elem_size * 16);
13
- ary->capa = 16;
14
- ary->size = 0;
15
-
16
- return ary;
17
- }
18
-
19
- void say_array_free(say_array *ary) {
20
- if (ary->destroy) {
21
- for (void *i = say_array_get(ary, 0); i; say_array_next(ary, &i)) {
22
- ary->destroy(i);
23
- }
24
- }
25
-
26
- free(ary->buf);
27
- free(ary);
28
- }
29
-
30
- void say_array_copy(say_array *ary, say_array *src) {
31
- ary->elem_size = src->elem_size;
32
-
33
- ary->create = src->create;
34
- ary->destroy = src->destroy;
35
-
36
- say_array_resize(ary, src->size);
37
-
38
- memcpy(ary->buf, src->buf, ary->elem_size * src->size);
39
- }
40
-
41
- static void *say_array_get_quick(say_array *ary, size_t i) {
42
- return ((uint8_t*)ary->buf + (ary->elem_size * i));
43
- }
44
-
45
- void *say_array_get(say_array *ary, size_t i) {
46
- if (i >= ary->size)
47
- return NULL;
48
- else
49
- return say_array_get_quick(ary, i);
50
- }
51
-
52
- void say_array_next(say_array *ary, void **i) {
53
- uint8_t *val = *i;
54
- val += ary->elem_size;
55
-
56
- if (val == say_array_get_end(ary))
57
- *i = NULL;
58
- else
59
- *i = val;
60
- }
61
-
62
- void *say_array_get_end(say_array *ary) {
63
- return ((uint8_t*)ary->buf + (ary->elem_size * ary->size));
64
- }
65
-
66
- size_t say_array_get_size(say_array *ary) {
67
- return ary->size;
68
- }
69
-
70
- size_t say_array_get_elem_size(say_array *ary) {
71
- return ary->elem_size;
72
- }
73
-
74
- void say_array_resize(say_array *ary, size_t size) {
75
- if (ary->size == size)
76
- return;
77
-
78
- size_t old_size = ary->size;
79
-
80
- if (ary->capa < size) {
81
- ary->buf = realloc(ary->buf, ary->elem_size * size);
82
- ary->capa = size;
83
- }
84
-
85
- ary->size = size;
86
-
87
- if (ary->create) {
88
- for (void *i = say_array_get(ary, old_size); i; say_array_next(ary, &i)) {
89
- ary->create(i);
90
- }
91
- }
92
- }
93
-
94
- void say_array_insert(say_array *ary, size_t n, void *elem) {
95
- if (ary->size + 1 > ary->capa) {
96
- ary->capa *= 2;
97
- ary->buf = realloc(ary->buf, ary->elem_size * ary->capa);
98
- }
99
-
100
- for (size_t i = ary->size; i > n; i--) {
101
- memcpy(say_array_get_quick(ary, i), say_array_get_quick(ary, i - 1),
102
- ary->elem_size);
103
- }
104
-
105
- memcpy(say_array_get_quick(ary, n), elem, ary->elem_size);
106
- ary->size++;
107
- }
108
-
109
- void say_array_push(say_array *ary, void *elem) {
110
- say_array_insert(ary, ary->size, elem);
111
- }
112
-
113
- void say_array_delete(say_array *ary, size_t n) {
114
- if (ary->destroy) {
115
- ary->destroy(say_array_get(ary, n));
116
- }
117
-
118
- for (size_t i = n; i < ary->size - 1; i++) {
119
- memcpy(say_array_get_quick(ary, i), say_array_get_quick(ary, i + 1),
120
- ary->elem_size);
121
- }
122
-
123
- ary->size--;
124
- }
@@ -1,34 +0,0 @@
1
- #ifndef SAY_ARRAY_H_
2
- #define SAY_ARRAY_H_
3
-
4
- #include "say_basic_type.h"
5
-
6
- typedef struct say_array {
7
- say_destructor destroy;
8
- say_destructor create;
9
-
10
- void *buf;
11
- size_t size;
12
- size_t capa;
13
-
14
- size_t elem_size;
15
- } say_array;
16
-
17
- say_array *say_array_create(size_t size_el, say_destructor dtor,
18
- say_creator ctor);
19
- void say_array_free(say_array *ary);
20
-
21
- void say_array_copy(say_array *ary, say_array *src);
22
-
23
- void *say_array_get(say_array *ary, size_t i);
24
- void say_array_next(say_array *ary, void **i);
25
- void *say_array_get_end(say_array *ary);
26
- size_t say_array_get_size(say_array *ary);
27
- size_t say_array_get_elem_size(say_array *ary);
28
-
29
- void say_array_resize(say_array *ary, size_t size);
30
- void say_array_insert(say_array *ary, size_t i, void *elem);
31
- void say_array_push(say_array *ary, void *elem);
32
- void say_array_delete(say_array *ary, size_t i);
33
-
34
- #endif
@@ -1,86 +0,0 @@
1
- #include "say.h"
2
-
3
- static void say_table_resize(say_table *table) {
4
- size_t current_size = table->size;
5
- size_t new_size = current_size * 2;
6
-
7
- table->pairs = realloc(table->pairs, sizeof(say_table_pair) * new_size);
8
-
9
- say_table_pair default_pair = {0, NULL};
10
- for (size_t i = current_size; i < new_size; i++)
11
- table->pairs[i] = default_pair;
12
-
13
- table->size = new_size;
14
- }
15
-
16
- say_table *say_table_create(say_destructor destructor) {
17
- say_table *table = malloc(sizeof(say_table));
18
-
19
- table->destructor = destructor;
20
-
21
- table->size = 8;
22
-
23
- table->pairs = malloc(sizeof(say_table_pair) * table->size);
24
-
25
- say_table_pair default_pair = {0, NULL};
26
- for (size_t i = 0; i < table->size; i++)
27
- table->pairs[i] = default_pair;
28
-
29
- return table;
30
- }
31
-
32
- void say_table_free(say_table *table) {
33
- if (table->destructor) {
34
- for (size_t i = 0; i < table->size; i++) {
35
- if (table->pairs[i].value != NULL)
36
- table->destructor(table->pairs[i].value);
37
- }
38
- }
39
-
40
- free(table->pairs);
41
- free(table);
42
- }
43
-
44
- void *say_table_get(say_table *table, uint32_t id) {
45
- for (size_t i = 0; i < table->size; i++) {
46
- if (table->pairs[i].key == id)
47
- return table->pairs[i].value;
48
- }
49
-
50
- return NULL;
51
- }
52
-
53
- void say_table_set(say_table *table, uint32_t id, void *value) {
54
- for (size_t i = 0; i < table->size; i++) {
55
- if (table->pairs[i].key == id) {
56
- table->pairs[i].value = value;
57
- return;
58
- }
59
- }
60
-
61
- for (size_t i = 0; i < table->size; i++) {
62
- if (table->pairs[i].value == NULL) {
63
- table->pairs[i].key = id;
64
- table->pairs[i].value = value;
65
- return;
66
- }
67
- }
68
-
69
- size_t old_size = table->size;
70
- say_table_resize(table);
71
-
72
- table->pairs[old_size].key = id;
73
- table->pairs[old_size].value = NULL;
74
- }
75
-
76
- void say_table_del(say_table *table, uint32_t id) {
77
- for (size_t i = 0; i < table->size; i++) {
78
- if (table->pairs[i].key == id) {
79
- if (table->pairs[i].value && table->destructor)
80
- table->destructor(table->pairs[i].value);
81
-
82
- table->pairs[i].value = NULL;
83
- return;
84
- }
85
- }
86
- }
@@ -1,24 +0,0 @@
1
- #ifndef SAY_TABLE_H_
2
- #define SAY_TABLE_H_
3
-
4
- #include "say_basic_type.h"
5
-
6
- typedef struct {
7
- uint32_t key;
8
- void *value;
9
- } say_table_pair;
10
-
11
- typedef struct {
12
- say_table_pair *pairs;
13
- say_destructor destructor;
14
- size_t size;
15
- } say_table;
16
-
17
- say_table *say_table_create(say_destructor destructor);
18
- void say_table_free(say_table *table);
19
-
20
- void *say_table_get(say_table *table, uint32_t id);
21
- void say_table_set(say_table *table, uint32_t id, void *value);
22
- void say_table_del(say_table *table, uint32_t id);
23
-
24
- #endif