Finalize struct gen for structured buffers. Rename buffer builtins.
This commit is contained in:
13
Codegen.jai
13
Codegen.jai
@@ -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);
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user