use package core
use package opengles
use package glfw3
+#local type_info :: package runtime.info
Editor_Range :: struct {min, max: f32;}
Editor_Disabled :: struct {}
}
#local scene_load_schematics :: (use this: ^Scene) {
- use type_info;
+ use package runtime.info;
index := 0;
for type_table {
comp_type := cast(type_expr) index;
if !component_vtables->has(comp_type) {
vtable := new(Component_Vtable, allocator=entity_allocator);
- type_info.populate_struct_vtable(vtable, comp_type, safe=false);
+ (package runtime.info).populate_struct_vtable(vtable, comp_type, safe=false);
component_vtables[comp_type] = vtable;
}
}
}
scene_duplicate :: (use this: ^Scene, entity: ^Entity) -> ^Entity {
+ type_info :: package runtime.info
+
new_entity := this->make();
new_entity.flags = entity.flags;
new_entity.schematic = entity.schematic;
}
scene_create_component :: (use this: ^Scene, component_type: type_expr) -> ^Component {
+ type_info :: package runtime.info
+
comp := cast(^Component) new(component_type, allocator=entity_allocator);
comp.type = component_type;
// writer := ^stdio.print_writer;
- use type_info;
+ use package runtime.info;
for entities {
info := cast(^Type_Info_Struct) get_type_info(it.schematic);
}
emit_struct_fields :: (v: any, dest: ^io.Writer, parent_name: str) {
- use type_info;
+ use package runtime.info;
info := cast(^Type_Info_Struct) get_type_info(v.type);
assert(info.kind == .Struct, "Expected type to be a structure.");
next_entity_id = 0;
}
- use type_info;
+ use package runtime.info;
current_entity: ^Entity;
current_component: ^Component;
glBindBuffer(GL_ARRAY_BUFFER, mesh.vertex_handle);
glBufferData(GL_ARRAY_BUFFER, sizeof T * verticies.count, verticies.data, gl_hint);
+ type_info :: package runtime.info
vertex_info := cast(^type_info.Type_Info_Struct) type_info.get_type_info(T);
vertex_attr := 0;
for attr: vertex_info.members {
// symbols.
//
get_any_for_member :: (base: any, member_name: str) -> any {
- use type_info;
+ use package runtime.info
name := member_name;
info := cast(^Type_Info_Struct) get_type_info(base.type);
}
load_asset_bucket :: (bucket: ^Asset_Bucket_To_Load) {
- use type_info;
+ use package runtime.info
struct_info := cast(^Type_Info_Struct) get_type_info(bucket.type);
if struct_info.kind != .Struct do return;