Mercurial > games > semicongine
comparison semiconginev2/rendering/renderer.nim @ 1255:2b5ca798f6d6
did: make example town loadable and renderable, yay!
| author | sam <sam@basx.dev> |
|---|---|
| date | Sun, 28 Jul 2024 00:17:34 +0700 |
| parents | b0f4c8ccd49a |
| children |
comparison
equal
deleted
inserted
replaced
| 1254:b0f4c8ccd49a | 1255:2b5ca798f6d6 |
|---|---|
| 605 static: | 605 static: |
| 606 hasBoundDescriptorSets = false | 606 hasBoundDescriptorSets = false |
| 607 | 607 |
| 608 proc assertCanRenderMesh(TShader, TMesh, TInstance: typedesc) = | 608 proc assertCanRenderMesh(TShader, TMesh, TInstance: typedesc) = |
| 609 for attrName, attrValue in default(TShader).fieldPairs: | 609 for attrName, attrValue in default(TShader).fieldPairs: |
| 610 if hasCustomPragma(attrValue, VertexAttribute): | 610 when hasCustomPragma(attrValue, VertexAttribute): |
| 611 var foundAttr = false | 611 var foundAttr = false |
| 612 for meshAttrName, meshAttrValue in default(TMesh).fieldPairs: | 612 for meshAttrName, meshAttrValue in default(TMesh).fieldPairs: |
| 613 if attrName == meshAttrName: | 613 when attrName == meshAttrName: |
| 614 assert typeof(meshAttrValue) is GPUArray, "Mesh attribute '" & attrName & "' must be a GPUArray" | 614 assert typeof(meshAttrValue) is GPUArray, "Mesh attribute '" & attrName & "' must be a GPUArray" |
| 615 assert typeof(attrValue) is elementType(meshAttrValue.data), "Type of shader attribute and mesh attribute '" & attrName & "' is not the same" | 615 assert typeof(attrValue) is elementType(meshAttrValue.data), "Type of shader attribute and mesh attribute '" & attrName & "' is not the same" |
| 616 foundAttr = true | 616 foundAttr = true |
| 617 assert foundAttr, "Attribute '" & attrName & "' is not provided in mesh type '" & name(TMesh) & "'" | 617 assert foundAttr, "Attribute '" & attrName & "' is not provided in mesh type '" & name(TMesh) & "'" |
| 618 if hasCustomPragma(attrValue, InstanceAttribute): | 618 if hasCustomPragma(attrValue, InstanceAttribute): |
