63 lines
1.2 KiB
C++
63 lines
1.2 KiB
C++
#ifndef DEFINITIONS_H
|
|
#define DEFINITIONS_H
|
|
|
|
#include "bindings/ruby.h"
|
|
|
|
namespace definitions {
|
|
struct Binding {
|
|
RClass *cls;
|
|
const mrb_data_type *type;
|
|
};
|
|
|
|
inline struct RubyBindings {
|
|
Binding Vec2;
|
|
Binding Params;
|
|
Binding Font;
|
|
Binding Image;
|
|
Binding Animation;
|
|
Binding ElementText;
|
|
Binding ElementRect;
|
|
Binding ElementImage;
|
|
Binding Scene;
|
|
} bindings;
|
|
|
|
inline mrb_value wrap(Binding binding, uint64_t id) {
|
|
RBasic *obj_b = mrb_obj_alloc(Ruby::mrb, MRB_TT_DATA, binding.cls);
|
|
mrb_value obj = mrb_obj_value(obj_b);
|
|
|
|
Wrapper *w = new Wrapper();
|
|
w->id = id;
|
|
|
|
mrb_data_init(obj, w, binding.type);
|
|
|
|
return obj;
|
|
}
|
|
|
|
mrb_value Vec2_wrap(uint64_t id, Vec2<float> *vec);
|
|
|
|
void register_vec2();
|
|
void register_params();
|
|
void register_font();
|
|
void register_image();
|
|
void register_animation();
|
|
void register_element_text();
|
|
void register_element_rect();
|
|
void register_element_image();
|
|
void register_scene();
|
|
void register_app();
|
|
|
|
inline void setup() {
|
|
register_vec2();
|
|
register_params();
|
|
register_font();
|
|
register_image();
|
|
register_animation();
|
|
register_element_text();
|
|
register_element_rect();
|
|
register_element_image();
|
|
register_scene();
|
|
register_app();
|
|
}
|
|
} // namespace definitions
|
|
|
|
#endif |