ray 0.1.1 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|