Finalize struct gen for structured buffers. Rename buffer builtins.

This commit is contained in:
2025-09-29 20:55:27 +02:00
parent 63a68b70b4
commit 2e23b37405
12 changed files with 25 additions and 20 deletions

View File

@@ -526,8 +526,13 @@ emit_field_list :: (state : *Codegen_State, field_list : *AST_Node, indentation
}
}
emit_struct :: (state : *Codegen_State, node : *AST_Node, indentation : int) {
print_to_builder(*state.builder, "struct %", node.name);
emit_struct :: (state : *Codegen_State, node : *AST_Node, indentation : int, name : string = "") {
if name.count > 0 {
print_to_builder(*state.builder, "struct %", name);
} else {
print_to_builder(*state.builder, "struct %", node.name);
}
current_scope := state.current_scope;
state.current_scope = from_handle(state.ctx.type_variables, node.type_variable).scope;
@@ -571,10 +576,10 @@ emit_buffer :: (state : *Codegen_State, node : *AST_Node, indentation : int) {
variable := from_handle(state.ctx.type_variables, node.type_variable);
element := from_handle(state.ctx.type_variables, variable.element_type);
emit_struct(state, node, indentation);
emit_struct(state, node, indentation, element.typename);
// print_to_builder(*state.builder, "struct %\n", element.name);
print_to_builder(*state.builder, "StructuredBuffer<%> %;\n\n", element.typename, variable.name);
print_to_builder(*state.builder, "StructuredBuffer<%> % : register(t%);\n\n", element.typename, variable.name, variable.resource_index);
}