chore: split monolithic header to proper program files, add vec2 ruby class to proxy element position etc., other cleanup

This commit is contained in:
2026-06-01 22:13:50 +01:00
parent 872d878ddc
commit dcb8b46245
21 changed files with 3153 additions and 2037 deletions
+1 -1
View File
@@ -1,7 +1,7 @@
#ifndef APP_H
#define APP_H
#include "binding/ruby.h"
#include "bindings/ruby.h"
#include "localization/localization.h"
#include "utils.h"
#include "window/window.h"
File diff suppressed because it is too large Load Diff
+63
View File
@@ -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
@@ -4,7 +4,7 @@
#include "pch.h"
#include "utils.h"
#include "binding/ruby_compiled.h"
#include "bindings/ruby_compiled.h"
#define DEF_SYM(name) inline mrb_sym sym_##name = mrb_intern_cstr(Ruby::mrb, #name);
#define SYM(name) mrb_symbol_value(sym_##name)
File diff suppressed because it is too large Load Diff