Files
project_misth/include/bindings/definitions.h
T
2026-06-04 23:46:34 +01:00

66 lines
1.3 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 ElementScript;
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_element_script();
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_element_script();
register_scene();
register_app();
}
} // namespace definitions
#endif