Mercurial > games > semicongine
comparison tests/test_vulkan_wrapper.nim @ 302:da0bd61abe91
did: change API for ECS
| author | Sam <sam@basx.dev> |
|---|---|
| date | Tue, 27 Jun 2023 00:17:40 +0700 |
| parents | bfcb41211c5b |
| children | 4921ec86dcb4 |
comparison
equal
deleted
inserted
replaced
| 301:bf5982802e2c | 302:da0bd61abe91 |
|---|---|
| 1 import std/tables | 1 import std/tables |
| 2 | 2 |
| 3 import semicongine | 3 import semicongine |
| 4 | 4 |
| 5 proc scene_different_mesh_types(): Entity = | 5 proc scene_different_mesh_types(): Entity = |
| 6 result = newEntity("root", | 6 result = newEntity("root", [], |
| 7 newEntity("triangle1", newMesh( | 7 newEntity("triangle1", {"mesh": Component(newMesh( |
| 8 positions=[newVec3f(0.0, -0.5), newVec3f(0.5, 0.5), newVec3f(-0.5, 0.5)], | 8 positions=[newVec3f(0.0, -0.5), newVec3f(0.5, 0.5), newVec3f(-0.5, 0.5)], |
| 9 colors=[newVec4f(1.0, 0.0, 0.0, 1), newVec4f(0.0, 1.0, 0.0, 1), newVec4f(0.0, 0.0, 1.0, 1)], | 9 colors=[newVec4f(1.0, 0.0, 0.0, 1), newVec4f(0.0, 1.0, 0.0, 1), newVec4f(0.0, 0.0, 1.0, 1)], |
| 10 )), | 10 ))}), |
| 11 newEntity("triangle1b", newMesh( | 11 newEntity("triangle1b", {"mesh": Component(newMesh( |
| 12 positions=[newVec3f(0.0, -0.4), newVec3f(0.4, 0.4), newVec3f(-0.4, 0.5)], | 12 positions=[newVec3f(0.0, -0.4), newVec3f(0.4, 0.4), newVec3f(-0.4, 0.5)], |
| 13 colors=[newVec4f(1.0, 0.0, 0.0, 1), newVec4f(0.0, 1.0, 0.0, 1), newVec4f(0.0, 0.0, 1.0, 1)], | 13 colors=[newVec4f(1.0, 0.0, 0.0, 1), newVec4f(0.0, 1.0, 0.0, 1), newVec4f(0.0, 0.0, 1.0, 1)], |
| 14 )), | 14 ))}), |
| 15 newEntity("triangle2a", newMesh( | 15 newEntity("triangle2a", {"mesh": Component(newMesh( |
| 16 positions=[newVec3f(0.0, 0.5), newVec3f(0.5, -0.5), newVec3f(-0.5, -0.5)], | 16 positions=[newVec3f(0.0, 0.5), newVec3f(0.5, -0.5), newVec3f(-0.5, -0.5)], |
| 17 colors=[newVec4f(1.0, 0.0, 0.0, 1), newVec4f(0.0, 1.0, 0.0, 1), newVec4f(0.0, 0.0, 1.0, 1)], | 17 colors=[newVec4f(1.0, 0.0, 0.0, 1), newVec4f(0.0, 1.0, 0.0, 1), newVec4f(0.0, 0.0, 1.0, 1)], |
| 18 indices=[[0'u16, 2'u16, 1'u16]] | 18 indices=[[0'u16, 2'u16, 1'u16]] |
| 19 )), | 19 ))}), |
| 20 newEntity("triangle2b", newMesh( | 20 newEntity("triangle2b", {"mesh": Component(newMesh( |
| 21 positions=[newVec3f(0.0, 0.4), newVec3f(0.4, -0.4), newVec3f(-0.4, -0.4)], | 21 positions=[newVec3f(0.0, 0.4), newVec3f(0.4, -0.4), newVec3f(-0.4, -0.4)], |
| 22 colors=[newVec4f(1.0, 0.0, 0.0, 1), newVec4f(0.0, 1.0, 0.0, 1), newVec4f(0.0, 0.0, 1.0, 1)], | 22 colors=[newVec4f(1.0, 0.0, 0.0, 1), newVec4f(0.0, 1.0, 0.0, 1), newVec4f(0.0, 0.0, 1.0, 1)], |
| 23 indices=[[0'u16, 2'u16, 1'u16]] | 23 indices=[[0'u16, 2'u16, 1'u16]] |
| 24 )), | 24 ))}), |
| 25 newEntity("triangle3a", newMesh( | 25 newEntity("triangle3a", {"mesh": Component(newMesh( |
| 26 positions=[newVec3f(0.4, 0.5), newVec3f(0.9, -0.3), newVec3f(0.0, -0.3)], | 26 positions=[newVec3f(0.4, 0.5), newVec3f(0.9, -0.3), newVec3f(0.0, -0.3)], |
| 27 colors=[newVec4f(1.0, 1.0, 0.0, 1), newVec4f(1.0, 1.0, 0.0, 1), newVec4f(1.0, 1.0, 0.0, 1)], | 27 colors=[newVec4f(1.0, 1.0, 0.0, 1), newVec4f(1.0, 1.0, 0.0, 1), newVec4f(1.0, 1.0, 0.0, 1)], |
| 28 indices=[[0'u32, 2'u32, 1'u32]], | 28 indices=[[0'u32, 2'u32, 1'u32]], |
| 29 autoResize=false | 29 autoResize=false |
| 30 )), | 30 ))}), |
| 31 newEntity("triangle3b", newMesh( | 31 newEntity("triangle3b", {"mesh": Component(newMesh( |
| 32 positions=[newVec3f(0.4, 0.5), newVec3f(0.9, -0.3), newVec3f(0.0, -0.3)], | 32 positions=[newVec3f(0.4, 0.5), newVec3f(0.9, -0.3), newVec3f(0.0, -0.3)], |
| 33 colors=[newVec4f(1.0, 1.0, 0.0, 1), newVec4f(1.0, 1.0, 0.0, 1), newVec4f(1.0, 1.0, 0.0, 1)], | 33 colors=[newVec4f(1.0, 1.0, 0.0, 1), newVec4f(1.0, 1.0, 0.0, 1), newVec4f(1.0, 1.0, 0.0, 1)], |
| 34 indices=[[0'u32, 2'u32, 1'u32]], | 34 indices=[[0'u32, 2'u32, 1'u32]], |
| 35 autoResize=false | 35 autoResize=false |
| 36 )), | 36 ))}), |
| 37 ) | 37 ) |
| 38 for mesh in allComponentsOfType[Mesh](result): | 38 for mesh in allComponentsOfType[Mesh](result): |
| 39 mesh.setInstanceData("translate", @[newVec3f()]) | 39 mesh.setInstanceData("translate", @[newVec3f()]) |
| 40 | 40 |
| 41 proc scene_simple(): Entity = | 41 proc scene_simple(): Entity = |
| 61 ) | 61 ) |
| 62 mymesh1.setInstanceData("translate", @[newVec3f(0.3, 0.0)]) | 62 mymesh1.setInstanceData("translate", @[newVec3f(0.3, 0.0)]) |
| 63 mymesh2.setInstanceData("translate", @[newVec3f(0.0, 0.3)]) | 63 mymesh2.setInstanceData("translate", @[newVec3f(0.0, 0.3)]) |
| 64 mymesh3.setInstanceData("translate", @[newVec3f(-0.3, 0.0)]) | 64 mymesh3.setInstanceData("translate", @[newVec3f(-0.3, 0.0)]) |
| 65 mymesh4.setInstanceData("translate", @[newVec3f(0.0, -0.3), newVec3f(0.0, 0.5)]) | 65 mymesh4.setInstanceData("translate", @[newVec3f(0.0, -0.3), newVec3f(0.0, 0.5)]) |
| 66 result = newEntity("root", newEntity("triangle", mymesh4, mymesh3, mymesh2, mymesh1)) | 66 result = newEntity("root", [], newEntity("triangle", {"mesh1": Component(mymesh4), "mesh2": Component(mymesh3), "mesh3": Component(mymesh2), "mesh4": Component(mymesh1)})) |
| 67 | 67 |
| 68 proc scene_primitives(): Entity = | 68 proc scene_primitives(): Entity = |
| 69 var r = rect(color="ff0000") | 69 var r = rect(color="ff0000") |
| 70 var t = tri(color="0000ff") | 70 var t = tri(color="0000ff") |
| 71 var c = circle(color="00ff00") | 71 var c = circle(color="00ff00") |
| 72 | 72 |
| 73 r.setInstanceData("translate", @[newVec3f(0.5, -0.3)]) | 73 r.setInstanceData("translate", @[newVec3f(0.5, -0.3)]) |
| 74 t.setInstanceData("translate", @[newVec3f(0.3, 0.3)]) | 74 t.setInstanceData("translate", @[newVec3f(0.3, 0.3)]) |
| 75 c.setInstanceData("translate", @[newVec3f(-0.3, 0.1)]) | 75 c.setInstanceData("translate", @[newVec3f(-0.3, 0.1)]) |
| 76 result = newEntity("root", t, r, c) | 76 result = newEntity("root", {"mesh1": Component(t), "mesh1": Component(r), "mesh1": Component(c)}) |
| 77 | 77 |
| 78 proc scene_flag(): Entity = | 78 proc scene_flag(): Entity = |
| 79 var r = rect(color="ff0000") | 79 var r = rect(color="ff0000") |
| 80 r.updateMeshData("color", @[newVec4f(0, 0), newVec4f(1, 0), newVec4f(1, 1), newVec4f(0, 1)]) | 80 r.updateMeshData("color", @[newVec4f(0, 0), newVec4f(1, 0), newVec4f(1, 1), newVec4f(0, 1)]) |
| 81 result = newEntity("root", r) | 81 result = newEntity("root", {"mesh": Component(r)}) |
| 82 | 82 |
| 83 proc main() = | 83 proc main() = |
| 84 var engine = initEngine("Test") | 84 var engine = initEngine("Test") |
| 85 | 85 |
| 86 # INIT RENDERER: | 86 # INIT RENDERER: |
