Merge branch 'main' of git.nbross.com:nielsbross/Ink-Shader-Language

This commit is contained in:
2025-09-24 14:04:56 +02:00
2 changed files with 12 additions and 0 deletions

View File

@@ -6,6 +6,8 @@
//~ nbr: Error reporting TODOs //~ nbr: Error reporting TODOs
// //
// [ ] Add and error for using keywords as names, or rename the dx11 keywords in the resulting hlsl shader. // [ ] Add and error for using keywords as names, or rename the dx11 keywords in the resulting hlsl shader.
// [ ] Add missing scope in for loop for loop iterator
// [ ] Maybe we remove the resource index on type variables, seems like we don't need it there.
// [x] Improve error reporting on mismatched overloads when types don't match, but arity does. // [x] Improve error reporting on mismatched overloads when types don't match, but arity does.
// [x] Improve error reporting for type mismatches in general. It seems like the expect node is not always correct. // [x] Improve error reporting for type mismatches in general. It seems like the expect node is not always correct.
@@ -83,6 +85,10 @@ Type_Variable :: struct {
MAX_TYPE_VARIABLE_CHILDREN :: 32; MAX_TYPE_VARIABLE_CHILDREN :: 32;
children : Static_Array(Type_Variable_Handle, MAX_TYPE_VARIABLE_CHILDREN); children : Static_Array(Type_Variable_Handle, MAX_TYPE_VARIABLE_CHILDREN);
//@Incomplete: Should we remove this and do it in the output generation instead?
// Seems kind of superfluous considering we auto-generate it.
// Otherwise if we want to specify it, it should be specified as a hint @binding(index)
// In the case of using hints, we can just have it on the AST node.
//@Note(niels): For constant buffers //@Note(niels): For constant buffers
resource_index : u32; resource_index : u32;
@@ -1639,6 +1645,7 @@ check_node :: (checker : *Checker, node : *AST_Node) -> Type_Variable_Handle {
} }
case .For; { case .For; {
loop_iterator := node.token; loop_iterator := node.token;
// @Incomplete: Missing scope here?
scope, scope_handle := push_scope(checker, kind = .Block); scope, scope_handle := push_scope(checker, kind = .Block);

View File

@@ -23,6 +23,11 @@
- [ ] for-each loops - [ ] for-each loops
- [ ] add parameters to hints (meta properties, resource binding indices if needed) - [ ] add parameters to hints (meta properties, resource binding indices if needed)
- [ ] consider @entry(stage) syntax instead of the forced keyword - [ ] consider @entry(stage) syntax instead of the forced keyword
- [ ] Add flags to compiler
- [ ] Generate output flag(s)
- [ ] Possibly final stage flag, so you can just call compile_file and it only does what you need.
- Probably this flag is about which stage you need as the _last_ and not which stages to do, as that doesn't make sense.
- [ ] Multiple output languages?
*/ */
add_define :: (env : *Environment, key : string) { add_define :: (env : *Environment, key : string) {