chore: split monolithic header to proper program files, add vec2 ruby class to proxy element position etc., other cleanup
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
#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
|
||||
Reference in New Issue
Block a user