ray 0.1.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.md +9 -6
- data/Rakefile +1 -5
- data/ext/audio.c +25 -19
- data/ext/audio_source.c +67 -39
- data/ext/color.c +19 -19
- data/ext/drawable.c +190 -31
- data/ext/extconf.rb +16 -14
- data/ext/gl.c +310 -30
- data/ext/gl_buffer.c +223 -2
- data/ext/gl_index_buffer.c +11 -0
- data/ext/gl_int_array.c +24 -22
- data/ext/gl_vertex.c +84 -49
- data/ext/image.c +115 -51
- data/ext/image_target.c +58 -10
- data/ext/input.c +73 -6
- data/ext/mo.c +583 -0
- data/ext/mo.h +189 -0
- data/ext/music.c +9 -8
- data/ext/pixel_bus.c +349 -0
- data/ext/polygon.c +68 -45
- data/ext/ray.c +1 -0
- data/ext/ray.h +19 -1
- data/ext/rect.c +9 -47
- data/ext/say.h +1 -2
- data/ext/say_all.h +6 -0
- data/ext/say_audio.h +3 -0
- data/ext/say_audio_context.c +1 -4
- data/ext/say_basic_type.c +24 -0
- data/ext/say_basic_type.h +4 -0
- data/ext/say_buffer.c +217 -88
- data/ext/say_buffer.h +20 -5
- data/ext/say_buffer_renderer.c +10 -7
- data/ext/say_buffer_renderer.h +1 -1
- data/ext/say_buffer_slice.c +70 -76
- data/ext/say_context.c +109 -22
- data/ext/say_context.h +14 -0
- data/ext/say_drawable.c +113 -25
- data/ext/say_drawable.h +23 -2
- data/ext/say_error.c +7 -2
- data/ext/say_font.c +30 -27
- data/ext/say_font.h +3 -6
- data/ext/say_get_proc.c +35 -0
- data/ext/say_image.c +102 -27
- data/ext/say_image.h +11 -4
- data/ext/say_image_target.c +88 -34
- data/ext/say_image_target.h +3 -2
- data/ext/say_index_buffer.c +31 -19
- data/ext/say_index_buffer.h +4 -2
- data/ext/say_index_buffer_slice.c +78 -70
- data/ext/say_music.c +4 -2
- data/ext/say_osx.h +3 -2
- data/ext/say_osx_context.h +37 -4
- data/ext/say_osx_window.h +32 -37
- data/ext/say_pixel_bus.c +163 -0
- data/ext/say_pixel_bus.h +44 -0
- data/ext/say_polygon.c +2 -2
- data/ext/say_shader.c +66 -62
- data/ext/say_shader.h +2 -0
- data/ext/say_sprite.c +1 -2
- data/ext/say_target.c +14 -23
- data/ext/say_target.h +3 -1
- data/ext/say_text.c +45 -7
- data/ext/say_text.h +12 -3
- data/ext/say_thread.c +13 -6
- data/ext/say_thread.h +1 -1
- data/ext/say_thread_variable.c +5 -5
- data/ext/say_vertex_type.c +79 -41
- data/ext/say_vertex_type.h +6 -2
- data/ext/say_view.c +10 -31
- data/ext/say_view.h +1 -5
- data/ext/say_win.h +2 -2
- data/ext/say_win_context.h +49 -11
- data/ext/say_win_window.h +30 -27
- data/ext/say_window.c +3 -3
- data/ext/say_x11.h +3 -1
- data/ext/say_x11_context.h +64 -10
- data/ext/say_x11_window.h +22 -17
- data/ext/shader.c +9 -0
- data/ext/sprite.c +7 -1
- data/ext/target.c +80 -28
- data/ext/text.c +43 -1
- data/ext/view.c +53 -1
- data/ext/window.c +4 -0
- data/lib/ray/animation_list.rb +17 -2
- data/lib/ray/audio_source.rb +11 -0
- data/lib/ray/color.rb +14 -0
- data/lib/ray/drawable.rb +23 -0
- data/lib/ray/dsl/event.rb +1 -9
- data/lib/ray/dsl/event_runner.rb +3 -4
- data/lib/ray/dsl/matcher.rb +20 -1
- data/lib/ray/effect.rb +116 -0
- data/lib/ray/effect/black_and_white.rb +38 -0
- data/lib/ray/effect/color_inversion.rb +16 -0
- data/lib/ray/effect/generator.rb +145 -0
- data/lib/ray/effect/grayscale.rb +32 -0
- data/lib/ray/game.rb +25 -5
- data/lib/ray/gl/vertex.rb +105 -26
- data/lib/ray/helper.rb +5 -0
- data/lib/ray/image.rb +54 -13
- data/lib/ray/image_target.rb +7 -0
- data/lib/ray/matrix.rb +26 -0
- data/lib/ray/music.rb +4 -0
- data/lib/ray/pixel_bus.rb +22 -0
- data/lib/ray/polygon.rb +17 -0
- data/lib/ray/pp.rb +28 -0
- data/lib/ray/ray.rb +7 -1
- data/lib/ray/rect.rb +7 -13
- data/lib/ray/scene.rb +24 -5
- data/lib/ray/scene_list.rb +9 -0
- data/lib/ray/shader.rb +11 -2
- data/lib/ray/sound.rb +4 -0
- data/lib/ray/sprite.rb +23 -62
- data/lib/ray/target.rb +25 -0
- data/lib/ray/text.rb +10 -0
- data/lib/ray/turtle.rb +9 -3
- data/lib/ray/vector.rb +18 -0
- data/lib/ray/vertex.rb +6 -0
- data/lib/ray/view.rb +22 -0
- data/samples/animation/sprite_motion.rb +0 -60
- data/samples/audio/{spacial.rb → spatial.rb} +1 -1
- data/samples/buffer/buffer.rb +1 -0
- data/samples/buffer/index_buffer.rb +2 -0
- data/samples/cptn_ruby/cptn_ruby.rb +6 -7
- data/samples/effects/effect.rb +39 -0
- data/samples/effects/grayscale.rb +27 -0
- data/samples/opengl/image.rb +7 -5
- data/samples/opengl/instancing.rb +159 -0
- data/samples/opengl/instancing.rbc +3231 -0
- data/samples/opengl/obj_loader.rb +9 -8
- data/samples/opengl/shader.rb +1 -3
- data/samples/shaders/geometry.rb +108 -38
- data/samples/shaders/geometry.rbc +2074 -0
- data/samples/shaders/shape.rb +2 -2
- data/samples/starfighter/starfighter.rb +5 -5
- data/samples/window/get_pixel.rb +1 -1
- data/test/animation_list_test.rb +18 -4
- data/test/drawable_test.rb +70 -1
- data/test/effect_generator_test.rb +63 -0
- data/test/effect_test.rb +61 -0
- data/test/game_test.rb +18 -0
- data/test/gl_buffer_test.rb +43 -1
- data/test/gl_index_buffer_test.rb +5 -0
- data/test/gl_vertex_test.rb +28 -1
- data/test/image_test.rb +5 -5
- data/test/input_test.rb +49 -0
- data/test/pixel_bus_test.rb +28 -0
- data/test/rect_test.rb +4 -0
- data/{samples/_media → test/res}/Beep.wav +0 -0
- data/samples/_media/CptnRuby Gem.png b/data/test/res/CptnRuby → Gem.png +0 -0
- data/samples/_media/CptnRuby Map.txt b/data/test/res/CptnRuby → Map.txt +0 -0
- data/samples/_media/CptnRuby Tileset.png b/data/test/res/CptnRuby → Tileset.png +0 -0
- data/{samples/_media → test/res}/CptnRuby.png +0 -0
- data/{samples/_media → test/res}/Space.png +0 -0
- data/{samples/_media → test/res}/Star.png +0 -0
- data/{samples/_media → test/res}/Starfighter.png +0 -0
- data/test/res/cube.obj +28 -0
- data/test/res/light3d.c +2 -2
- data/test/res/stone.png +0 -0
- data/test/scene_test.rb +3 -0
- data/test/sprite_test.rb +10 -0
- data/test/text_test.rb +31 -2
- data/test/view_test.rb +13 -1
- metadata +38 -17
- data/ext/say_array.c +0 -124
- data/ext/say_array.h +0 -34
- data/ext/say_table.c +0 -86
- data/ext/say_table.h +0 -24
data/ext/say_array.c
DELETED
@@ -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
|
-
}
|
data/ext/say_array.h
DELETED
@@ -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
|
data/ext/say_table.c
DELETED
@@ -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
|
-
}
|
data/ext/say_table.h
DELETED
@@ -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
|