Mesh_Entities!
This commit is contained in:
@@ -31,7 +31,6 @@ Node_Render_Data :: struct {
|
||||
enabled : bool = true;
|
||||
transform: Transform;
|
||||
material : Entity_Material;
|
||||
has_sampled_animation: bool;
|
||||
|
||||
// Buffers
|
||||
transform_buffer: Buffer_Handle;
|
||||
@@ -45,9 +44,11 @@ Renderable :: struct {
|
||||
visible: bool = true;
|
||||
type : Renderable_Type; @DontSerialize
|
||||
|
||||
model: *Model; @DontSerialize
|
||||
model: Model_Handle; @DontSerialize
|
||||
nodes: [MAX_NODES] Node_Render_Data; @DontSerialize
|
||||
num_nodes: s64; @DontSerialize
|
||||
|
||||
//node_buffer : Buffer_Handle; // Structure buffer with all transform + material // TODO
|
||||
}
|
||||
|
||||
MAX_CHILDREN :: 16;
|
||||
@@ -114,8 +115,10 @@ set_parent :: (e: *Entity, parent: *Entity, node_name: string = "") {
|
||||
|
||||
set_base_color :: (e: *Entity, color: Vector4, node_name: string = "") {
|
||||
if e.renderable.type == .MODEL {
|
||||
model := get_model_by_handle(e.renderable.model);
|
||||
|
||||
for i: 0..e.renderable.num_nodes-1 {
|
||||
actual_node := e.renderable.model.nodes[i];
|
||||
actual_node := model.nodes[i];
|
||||
if node_name.count == 0 || node_name == actual_node.name {
|
||||
data := *e.renderable.nodes[i];
|
||||
if data.material_buffer > 0 {
|
||||
@@ -140,13 +143,15 @@ set_node_enabled :: (e: *Entity, node_name: string, enabled : bool) {
|
||||
}
|
||||
}
|
||||
|
||||
load_model_into_entity :: (e: *Entity, model: *Model) {
|
||||
load_model_into_entity :: (e: *Entity, handle: Model_Handle) {
|
||||
model := get_model_by_handle(handle);
|
||||
|
||||
e.renderable.type = .MODEL;
|
||||
|
||||
assert(model.nodes.count <= MAX_NODES);
|
||||
|
||||
e.renderable.num_nodes = model.nodes.count;
|
||||
e.renderable.model = model;
|
||||
e.renderable.model = handle;
|
||||
|
||||
for *model.nodes {
|
||||
data : Node_Render_Data;
|
||||
|
||||
Reference in New Issue
Block a user