Tiny refactor

This commit is contained in:
2024-10-18 16:12:24 +02:00
parent 8ee000ab74
commit 1d5b4499a4
38 changed files with 645 additions and 637 deletions

View File

@@ -111,7 +111,7 @@ set_base_color :: (e: *Entity, color: Vector4, node_name: string = "") {
if data.material_buffer > 0 {
material : Entity_Material = ---;
material.base_color = color;
upload_data_to_buffer(renderer, data.material_buffer, *material, size_of(Entity_Material));
upload_data_to_buffer(engine.renderer, data.material_buffer, *material, size_of(Entity_Material));
}
}
}
@@ -148,13 +148,13 @@ load_model_into_entity :: (e: *Entity, model: *Model) {
material.base_color = it.material_defaults[0].base_color; // @Incomplete: What if there are multiple meshes?
data.material = material;
data.transform_buffer = create_constant_buffer(renderer, null, size_of(Matrix4), mappable=true);
data.material_buffer = create_constant_buffer(renderer, *material, size_of(Entity_Material), mappable=true);
data.transform_buffer = create_constant_buffer(engine.renderer, null, size_of(Matrix4), mappable=true);
data.material_buffer = create_constant_buffer(engine.renderer, *material, size_of(Entity_Material), mappable=true);
data.num_bones = it.num_bones;
if it.num_bones > 0 {
for bone_index: 0..it.num_bones-1 {
data.bone_buffers[bone_index] = create_constant_buffer(renderer, null, size_of(Matrix4) * MAX_BONES, mappable=true);
data.bone_buffers[bone_index] = create_constant_buffer(engine.renderer, null, size_of(Matrix4) * MAX_BONES, mappable=true);
}
}
}
@@ -169,22 +169,22 @@ destroy_entity :: (e: *Entity, remove_from_scene: bool = true) {
node_data := e.renderable.nodes[it];
if node_data.transform_buffer > 0 {
destroy_buffer(renderer, node_data.transform_buffer);
destroy_buffer(engine.renderer, node_data.transform_buffer);
}
if node_data.material_buffer > 0 {
destroy_buffer(renderer, node_data.material_buffer);
destroy_buffer(engine.renderer, node_data.material_buffer);
}
for bi: 0..node_data.num_bones-1 {
destroy_buffer(renderer, node_data.bone_buffers[bi]);
destroy_buffer(engine.renderer, node_data.bone_buffers[bi]);
}
}
if remove_from_scene {
array_unordered_remove_by_value(*game_state.current_scene.entities, e);
array_unordered_remove_by_value(*game_state.engine.current_scene.entities, e);
if e.type == {
case Block; bucket_array_remove(*game_state.current_scene.by_type._Block, e._locator);
case Block; bucket_array_remove(*game_state.engine.current_scene.by_type._Block, e._locator);
}
}
}