Mercurial > games > semicongine
annotate tests/test_vulkan_wrapper.nim @ 278:b17df28712d6
did: adjust for small API change
| author | Sam <sam@basx.dev> | 
|---|---|
| date | Sat, 03 Jun 2023 13:44:17 +0700 | 
| parents | bfcb41211c5b | 
| children | da0bd61abe91 | 
| rev | line source | 
|---|---|
| 272 
bfcb41211c5b
add: final font-rendering, API changes fixed
 Sam <sam@basx.dev> parents: 
253diff
changeset | 1 import std/tables | 
| 
bfcb41211c5b
add: final font-rendering, API changes fixed
 Sam <sam@basx.dev> parents: 
253diff
changeset | 2 | 
| 117 | 3 import semicongine | 
| 99 
4deffc94484a
add: vertex and (initial) shader types and methods
 Sam <sam@basx.dev> parents: 
98diff
changeset | 4 | 
| 128 
9901ec3831d1
did: finish refactoring of render pipeline, yipi! :)
 Sam <sam@basx.dev> parents: 
127diff
changeset | 5 proc scene_different_mesh_types(): Entity = | 
| 
9901ec3831d1
did: finish refactoring of render pipeline, yipi! :)
 Sam <sam@basx.dev> parents: 
127diff
changeset | 6 result = newEntity("root", | 
| 
9901ec3831d1
did: finish refactoring of render pipeline, yipi! :)
 Sam <sam@basx.dev> parents: 
127diff
changeset | 7 newEntity("triangle1", newMesh( | 
| 
9901ec3831d1
did: finish refactoring of render pipeline, yipi! :)
 Sam <sam@basx.dev> parents: 
127diff
changeset | 8 positions=[newVec3f(0.0, -0.5), newVec3f(0.5, 0.5), newVec3f(-0.5, 0.5)], | 
| 211 | 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)], | 
| 128 
9901ec3831d1
did: finish refactoring of render pipeline, yipi! :)
 Sam <sam@basx.dev> parents: 
127diff
changeset | 10 )), | 
| 
9901ec3831d1
did: finish refactoring of render pipeline, yipi! :)
 Sam <sam@basx.dev> parents: 
127diff
changeset | 11 newEntity("triangle1b", newMesh( | 
| 
9901ec3831d1
did: finish refactoring of render pipeline, yipi! :)
 Sam <sam@basx.dev> parents: 
127diff
changeset | 12 positions=[newVec3f(0.0, -0.4), newVec3f(0.4, 0.4), newVec3f(-0.4, 0.5)], | 
| 211 | 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)], | 
| 128 
9901ec3831d1
did: finish refactoring of render pipeline, yipi! :)
 Sam <sam@basx.dev> parents: 
127diff
changeset | 14 )), | 
| 
9901ec3831d1
did: finish refactoring of render pipeline, yipi! :)
 Sam <sam@basx.dev> parents: 
127diff
changeset | 15 newEntity("triangle2a", newMesh( | 
| 
9901ec3831d1
did: finish refactoring of render pipeline, yipi! :)
 Sam <sam@basx.dev> parents: 
127diff
changeset | 16 positions=[newVec3f(0.0, 0.5), newVec3f(0.5, -0.5), newVec3f(-0.5, -0.5)], | 
| 211 | 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)], | 
| 128 
9901ec3831d1
did: finish refactoring of render pipeline, yipi! :)
 Sam <sam@basx.dev> parents: 
127diff
changeset | 18 indices=[[0'u16, 2'u16, 1'u16]] | 
| 
9901ec3831d1
did: finish refactoring of render pipeline, yipi! :)
 Sam <sam@basx.dev> parents: 
127diff
changeset | 19 )), | 
| 
9901ec3831d1
did: finish refactoring of render pipeline, yipi! :)
 Sam <sam@basx.dev> parents: 
127diff
changeset | 20 newEntity("triangle2b", newMesh( | 
| 
9901ec3831d1
did: finish refactoring of render pipeline, yipi! :)
 Sam <sam@basx.dev> parents: 
127diff
changeset | 21 positions=[newVec3f(0.0, 0.4), newVec3f(0.4, -0.4), newVec3f(-0.4, -0.4)], | 
| 211 | 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)], | 
| 128 
9901ec3831d1
did: finish refactoring of render pipeline, yipi! :)
 Sam <sam@basx.dev> parents: 
127diff
changeset | 23 indices=[[0'u16, 2'u16, 1'u16]] | 
| 
9901ec3831d1
did: finish refactoring of render pipeline, yipi! :)
 Sam <sam@basx.dev> parents: 
127diff
changeset | 24 )), | 
| 
9901ec3831d1
did: finish refactoring of render pipeline, yipi! :)
 Sam <sam@basx.dev> parents: 
127diff
changeset | 25 newEntity("triangle3a", newMesh( | 
| 
9901ec3831d1
did: finish refactoring of render pipeline, yipi! :)
 Sam <sam@basx.dev> parents: 
127diff
changeset | 26 positions=[newVec3f(0.4, 0.5), newVec3f(0.9, -0.3), newVec3f(0.0, -0.3)], | 
| 211 | 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)], | 
| 128 
9901ec3831d1
did: finish refactoring of render pipeline, yipi! :)
 Sam <sam@basx.dev> parents: 
127diff
changeset | 28 indices=[[0'u32, 2'u32, 1'u32]], | 
| 
9901ec3831d1
did: finish refactoring of render pipeline, yipi! :)
 Sam <sam@basx.dev> parents: 
127diff
changeset | 29 autoResize=false | 
| 
9901ec3831d1
did: finish refactoring of render pipeline, yipi! :)
 Sam <sam@basx.dev> parents: 
127diff
changeset | 30 )), | 
| 
9901ec3831d1
did: finish refactoring of render pipeline, yipi! :)
 Sam <sam@basx.dev> parents: 
127diff
changeset | 31 newEntity("triangle3b", newMesh( | 
| 
9901ec3831d1
did: finish refactoring of render pipeline, yipi! :)
 Sam <sam@basx.dev> parents: 
127diff
changeset | 32 positions=[newVec3f(0.4, 0.5), newVec3f(0.9, -0.3), newVec3f(0.0, -0.3)], | 
| 211 | 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)], | 
| 128 
9901ec3831d1
did: finish refactoring of render pipeline, yipi! :)
 Sam <sam@basx.dev> parents: 
127diff
changeset | 34 indices=[[0'u32, 2'u32, 1'u32]], | 
| 
9901ec3831d1
did: finish refactoring of render pipeline, yipi! :)
 Sam <sam@basx.dev> parents: 
127diff
changeset | 35 autoResize=false | 
| 
9901ec3831d1
did: finish refactoring of render pipeline, yipi! :)
 Sam <sam@basx.dev> parents: 
127diff
changeset | 36 )), | 
| 113 
7b695fb335ed
did: first final implementation of scene-graph <-> pipeline connection, not working yet
 Sam <sam@basx.dev> parents: 
112diff
changeset | 37 ) | 
| 128 
9901ec3831d1
did: finish refactoring of render pipeline, yipi! :)
 Sam <sam@basx.dev> parents: 
127diff
changeset | 38 for mesh in allComponentsOfType[Mesh](result): | 
| 
9901ec3831d1
did: finish refactoring of render pipeline, yipi! :)
 Sam <sam@basx.dev> parents: 
127diff
changeset | 39 mesh.setInstanceData("translate", @[newVec3f()]) | 
| 124 
cb9e27a30165
fix: completely overhole buffer handling for drawing, fix shit
 Sam <sam@basx.dev> parents: 
123diff
changeset | 40 | 
| 128 
9901ec3831d1
did: finish refactoring of render pipeline, yipi! :)
 Sam <sam@basx.dev> parents: 
127diff
changeset | 41 proc scene_simple(): Entity = | 
| 124 
cb9e27a30165
fix: completely overhole buffer handling for drawing, fix shit
 Sam <sam@basx.dev> parents: 
123diff
changeset | 42 var mymesh1 = newMesh( | 
| 
cb9e27a30165
fix: completely overhole buffer handling for drawing, fix shit
 Sam <sam@basx.dev> parents: 
123diff
changeset | 43 positions=[newVec3f(0.0, -0.3), newVec3f(0.3, 0.3), newVec3f(-0.3, 0.3)], | 
| 211 | 44 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)], | 
| 124 
cb9e27a30165
fix: completely overhole buffer handling for drawing, fix shit
 Sam <sam@basx.dev> parents: 
123diff
changeset | 45 ) | 
| 
cb9e27a30165
fix: completely overhole buffer handling for drawing, fix shit
 Sam <sam@basx.dev> parents: 
123diff
changeset | 46 var mymesh2 = newMesh( | 
| 123 
55be3579dc30
did: refactor mesh code, prepare for instance-data
 Sam <sam@basx.dev> parents: 
122diff
changeset | 47 positions=[newVec3f(0.0, -0.5), newVec3f(0.5, 0.5), newVec3f(-0.5, 0.5)], | 
| 211 | 48 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)], | 
| 123 
55be3579dc30
did: refactor mesh code, prepare for instance-data
 Sam <sam@basx.dev> parents: 
122diff
changeset | 49 ) | 
| 124 
cb9e27a30165
fix: completely overhole buffer handling for drawing, fix shit
 Sam <sam@basx.dev> parents: 
123diff
changeset | 50 var mymesh3 = newMesh( | 
| 
cb9e27a30165
fix: completely overhole buffer handling for drawing, fix shit
 Sam <sam@basx.dev> parents: 
123diff
changeset | 51 positions=[newVec3f(0.0, -0.6), newVec3f(0.6, 0.6), newVec3f(-0.6, 0.6)], | 
| 211 | 52 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)], | 
| 124 
cb9e27a30165
fix: completely overhole buffer handling for drawing, fix shit
 Sam <sam@basx.dev> parents: 
123diff
changeset | 53 indices=[[0'u32, 1'u32, 2'u32]], | 
| 
cb9e27a30165
fix: completely overhole buffer handling for drawing, fix shit
 Sam <sam@basx.dev> parents: 
123diff
changeset | 54 autoResize=false | 
| 
cb9e27a30165
fix: completely overhole buffer handling for drawing, fix shit
 Sam <sam@basx.dev> parents: 
123diff
changeset | 55 ) | 
| 
cb9e27a30165
fix: completely overhole buffer handling for drawing, fix shit
 Sam <sam@basx.dev> parents: 
123diff
changeset | 56 var mymesh4 = newMesh( | 
| 
cb9e27a30165
fix: completely overhole buffer handling for drawing, fix shit
 Sam <sam@basx.dev> parents: 
123diff
changeset | 57 positions=[newVec3f(0.0, -0.8), newVec3f(0.8, 0.8), newVec3f(-0.8, 0.8)], | 
| 211 | 58 colors=[newVec4f(0.0, 0.0, 1.0, 1), newVec4f(0.0, 0.0, 1.0, 1), newVec4f(0.0, 0.0, 1.0, 1)], | 
| 124 
cb9e27a30165
fix: completely overhole buffer handling for drawing, fix shit
 Sam <sam@basx.dev> parents: 
123diff
changeset | 59 indices=[[0'u16, 1'u16, 2'u16]], | 
| 125 | 60 instanceCount=2 | 
| 124 
cb9e27a30165
fix: completely overhole buffer handling for drawing, fix shit
 Sam <sam@basx.dev> parents: 
123diff
changeset | 61 ) | 
| 126 | 62 mymesh1.setInstanceData("translate", @[newVec3f(0.3, 0.0)]) | 
| 63 mymesh2.setInstanceData("translate", @[newVec3f(0.0, 0.3)]) | |
| 64 mymesh3.setInstanceData("translate", @[newVec3f(-0.3, 0.0)]) | |
| 65 mymesh4.setInstanceData("translate", @[newVec3f(0.0, -0.3), newVec3f(0.0, 0.5)]) | |
| 128 
9901ec3831d1
did: finish refactoring of render pipeline, yipi! :)
 Sam <sam@basx.dev> parents: 
127diff
changeset | 66 result = newEntity("root", newEntity("triangle", mymesh4, mymesh3, mymesh2, mymesh1)) | 
| 124 
cb9e27a30165
fix: completely overhole buffer handling for drawing, fix shit
 Sam <sam@basx.dev> parents: 
123diff
changeset | 67 | 
| 128 
9901ec3831d1
did: finish refactoring of render pipeline, yipi! :)
 Sam <sam@basx.dev> parents: 
127diff
changeset | 68 proc scene_primitives(): Entity = | 
| 125 | 69 var r = rect(color="ff0000") | 
| 70 var t = tri(color="0000ff") | |
| 71 var c = circle(color="00ff00") | |
| 226 | 72 | 
| 192 
659992f14dd6
add: textures now support in shader via scene data, also: improved config handling a bit, more to come
 Sam <sam@basx.dev> parents: 
191diff
changeset | 73 r.setInstanceData("translate", @[newVec3f(0.5, -0.3)]) | 
| 
659992f14dd6
add: textures now support in shader via scene data, also: improved config handling a bit, more to come
 Sam <sam@basx.dev> parents: 
191diff
changeset | 74 t.setInstanceData("translate", @[newVec3f(0.3, 0.3)]) | 
| 
659992f14dd6
add: textures now support in shader via scene data, also: improved config handling a bit, more to come
 Sam <sam@basx.dev> parents: 
191diff
changeset | 75 c.setInstanceData("translate", @[newVec3f(-0.3, 0.1)]) | 
| 128 
9901ec3831d1
did: finish refactoring of render pipeline, yipi! :)
 Sam <sam@basx.dev> parents: 
127diff
changeset | 76 result = newEntity("root", t, r, c) | 
| 124 
cb9e27a30165
fix: completely overhole buffer handling for drawing, fix shit
 Sam <sam@basx.dev> parents: 
123diff
changeset | 77 | 
| 192 
659992f14dd6
add: textures now support in shader via scene data, also: improved config handling a bit, more to come
 Sam <sam@basx.dev> parents: 
191diff
changeset | 78 proc scene_flag(): Entity = | 
| 
659992f14dd6
add: textures now support in shader via scene data, also: improved config handling a bit, more to come
 Sam <sam@basx.dev> parents: 
191diff
changeset | 79 var r = rect(color="ff0000") | 
| 211 | 80 r.updateMeshData("color", @[newVec4f(0, 0), newVec4f(1, 0), newVec4f(1, 1), newVec4f(0, 1)]) | 
| 192 
659992f14dd6
add: textures now support in shader via scene data, also: improved config handling a bit, more to come
 Sam <sam@basx.dev> parents: 
191diff
changeset | 81 result = newEntity("root", r) | 
| 
659992f14dd6
add: textures now support in shader via scene data, also: improved config handling a bit, more to come
 Sam <sam@basx.dev> parents: 
191diff
changeset | 82 | 
| 129 
15d37022625c
add: input handling, small refactoring for renderer
 Sam <sam@basx.dev> parents: 
128diff
changeset | 83 proc main() = | 
| 127 | 84 var engine = initEngine("Test") | 
| 124 
cb9e27a30165
fix: completely overhole buffer handling for drawing, fix shit
 Sam <sam@basx.dev> parents: 
123diff
changeset | 85 | 
| 
cb9e27a30165
fix: completely overhole buffer handling for drawing, fix shit
 Sam <sam@basx.dev> parents: 
123diff
changeset | 86 # INIT RENDERER: | 
| 
cb9e27a30165
fix: completely overhole buffer handling for drawing, fix shit
 Sam <sam@basx.dev> parents: 
123diff
changeset | 87 const | 
| 
cb9e27a30165
fix: completely overhole buffer handling for drawing, fix shit
 Sam <sam@basx.dev> parents: 
123diff
changeset | 88 vertexInput = @[ | 
| 168 | 89 attr[Vec3f]("position", memoryPerformanceHint=PreferFastRead), | 
| 211 | 90 attr[Vec4f]("color", memoryPerformanceHint=PreferFastWrite), | 
| 125 | 91 attr[Vec3f]("translate", perInstance=true) | 
| 124 
cb9e27a30165
fix: completely overhole buffer handling for drawing, fix shit
 Sam <sam@basx.dev> parents: 
123diff
changeset | 92 ] | 
| 211 | 93 vertexOutput = @[attr[Vec4f]("outcolor")] | 
| 124 
cb9e27a30165
fix: completely overhole buffer handling for drawing, fix shit
 Sam <sam@basx.dev> parents: 
123diff
changeset | 94 uniforms = @[attr[float32]("time")] | 
| 191 
81dc05b46b85
add: texture testing, not working yet, something update un-updated descritors (even though we write the descriptors man!)
 Sam <sam@basx.dev> parents: 
190diff
changeset | 95 samplers = @[attr[Sampler2DType]("my_little_texture")] | 
| 124 
cb9e27a30165
fix: completely overhole buffer handling for drawing, fix shit
 Sam <sam@basx.dev> parents: 
123diff
changeset | 96 fragOutput = @[attr[Vec4f]("color")] | 
| 
cb9e27a30165
fix: completely overhole buffer handling for drawing, fix shit
 Sam <sam@basx.dev> parents: 
123diff
changeset | 97 vertexCode = compileGlslShader( | 
| 
cb9e27a30165
fix: completely overhole buffer handling for drawing, fix shit
 Sam <sam@basx.dev> parents: 
123diff
changeset | 98 stage=VK_SHADER_STAGE_VERTEX_BIT, | 
| 
cb9e27a30165
fix: completely overhole buffer handling for drawing, fix shit
 Sam <sam@basx.dev> parents: 
123diff
changeset | 99 inputs=vertexInput, | 
| 
cb9e27a30165
fix: completely overhole buffer handling for drawing, fix shit
 Sam <sam@basx.dev> parents: 
123diff
changeset | 100 uniforms=uniforms, | 
| 191 
81dc05b46b85
add: texture testing, not working yet, something update un-updated descritors (even though we write the descriptors man!)
 Sam <sam@basx.dev> parents: 
190diff
changeset | 101 samplers=samplers, | 
| 124 
cb9e27a30165
fix: completely overhole buffer handling for drawing, fix shit
 Sam <sam@basx.dev> parents: 
123diff
changeset | 102 outputs=vertexOutput, | 
| 127 | 103 main="""gl_Position = vec4(position + translate, 1.0); outcolor = color;""" | 
| 123 
55be3579dc30
did: refactor mesh code, prepare for instance-data
 Sam <sam@basx.dev> parents: 
122diff
changeset | 104 ) | 
| 124 
cb9e27a30165
fix: completely overhole buffer handling for drawing, fix shit
 Sam <sam@basx.dev> parents: 
123diff
changeset | 105 fragmentCode = compileGlslShader( | 
| 
cb9e27a30165
fix: completely overhole buffer handling for drawing, fix shit
 Sam <sam@basx.dev> parents: 
123diff
changeset | 106 stage=VK_SHADER_STAGE_FRAGMENT_BIT, | 
| 
cb9e27a30165
fix: completely overhole buffer handling for drawing, fix shit
 Sam <sam@basx.dev> parents: 
123diff
changeset | 107 inputs=vertexOutput, | 
| 
cb9e27a30165
fix: completely overhole buffer handling for drawing, fix shit
 Sam <sam@basx.dev> parents: 
123diff
changeset | 108 uniforms=uniforms, | 
| 191 
81dc05b46b85
add: texture testing, not working yet, something update un-updated descritors (even though we write the descriptors man!)
 Sam <sam@basx.dev> parents: 
190diff
changeset | 109 samplers=samplers, | 
| 124 
cb9e27a30165
fix: completely overhole buffer handling for drawing, fix shit
 Sam <sam@basx.dev> parents: 
123diff
changeset | 110 outputs=fragOutput, | 
| 211 | 111 main="color = texture(my_little_texture, outcolor.xy) * 0.5 + outcolor * 0.5;" | 
| 124 
cb9e27a30165
fix: completely overhole buffer handling for drawing, fix shit
 Sam <sam@basx.dev> parents: 
123diff
changeset | 112 ) | 
| 135 | 113 var renderPass = engine.gpuDevice.simpleForwardRenderPass(vertexCode, fragmentCode) | 
| 131 
11666d28e04d
add: recreation of swapchain (at least on linux, windows will likely fail, needs testing
 Sam <sam@basx.dev> parents: 
129diff
changeset | 114 engine.setRenderer(renderPass) | 
| 124 
cb9e27a30165
fix: completely overhole buffer handling for drawing, fix shit
 Sam <sam@basx.dev> parents: 
123diff
changeset | 115 | 
| 129 
15d37022625c
add: input handling, small refactoring for renderer
 Sam <sam@basx.dev> parents: 
128diff
changeset | 116 # INIT SCENES | 
| 189 
df92519d4d68
add: initial code for texture support, not finished, had to completely refactor how to handle material-data (ie scene-wide data, sorry if you ever read this
 Sam <sam@basx.dev> parents: 
188diff
changeset | 117 var scenes = [ | 
| 
df92519d4d68
add: initial code for texture support, not finished, had to completely refactor how to handle material-data (ie scene-wide data, sorry if you ever read this
 Sam <sam@basx.dev> parents: 
188diff
changeset | 118 newScene("simple", scene_simple()), | 
| 
df92519d4d68
add: initial code for texture support, not finished, had to completely refactor how to handle material-data (ie scene-wide data, sorry if you ever read this
 Sam <sam@basx.dev> parents: 
188diff
changeset | 119 newScene("different mesh types", scene_different_mesh_types()), | 
| 192 
659992f14dd6
add: textures now support in shader via scene data, also: improved config handling a bit, more to come
 Sam <sam@basx.dev> parents: 
191diff
changeset | 120 newScene("primitives", scene_primitives()), | 
| 
659992f14dd6
add: textures now support in shader via scene data, also: improved config handling a bit, more to come
 Sam <sam@basx.dev> parents: 
191diff
changeset | 121 newScene("flag", scene_flag()), | 
| 189 
df92519d4d68
add: initial code for texture support, not finished, had to completely refactor how to handle material-data (ie scene-wide data, sorry if you ever read this
 Sam <sam@basx.dev> parents: 
188diff
changeset | 122 ] | 
| 249 | 123 var sampler = DefaultSampler() | 
| 124 sampler.magnification = VK_FILTER_NEAREST | |
| 125 sampler.minification = VK_FILTER_NEAREST | |
| 128 
9901ec3831d1
did: finish refactoring of render pipeline, yipi! :)
 Sam <sam@basx.dev> parents: 
127diff
changeset | 126 for scene in scenes.mitems: | 
| 189 
df92519d4d68
add: initial code for texture support, not finished, had to completely refactor how to handle material-data (ie scene-wide data, sorry if you ever read this
 Sam <sam@basx.dev> parents: 
188diff
changeset | 127 scene.addShaderGlobal("time", 0.0'f32) | 
| 192 
659992f14dd6
add: textures now support in shader via scene data, also: improved config handling a bit, more to come
 Sam <sam@basx.dev> parents: 
191diff
changeset | 128 let (R, W) = ([255'u8, 0'u8, 0'u8, 255'u8], [255'u8, 255'u8, 255'u8, 255'u8]) | 
| 272 
bfcb41211c5b
add: final font-rendering, API changes fixed
 Sam <sam@basx.dev> parents: 
253diff
changeset | 129 scene.addMaterial(Material(name: "my_material", textures: {"my_little_texture": Texture(image: Image(width: 5, height: 5, imagedata: @[ | 
| 191 
81dc05b46b85
add: texture testing, not working yet, something update un-updated descritors (even though we write the descriptors man!)
 Sam <sam@basx.dev> parents: 
190diff
changeset | 130 R, R, R, R, R, | 
| 192 
659992f14dd6
add: textures now support in shader via scene data, also: improved config handling a bit, more to come
 Sam <sam@basx.dev> parents: 
191diff
changeset | 131 R, R, W, R, R, | 
| 
659992f14dd6
add: textures now support in shader via scene data, also: improved config handling a bit, more to come
 Sam <sam@basx.dev> parents: 
191diff
changeset | 132 R, W, W, W, R, | 
| 
659992f14dd6
add: textures now support in shader via scene data, also: improved config handling a bit, more to come
 Sam <sam@basx.dev> parents: 
191diff
changeset | 133 R, R, W, R, R, | 
| 191 
81dc05b46b85
add: texture testing, not working yet, something update un-updated descritors (even though we write the descriptors man!)
 Sam <sam@basx.dev> parents: 
190diff
changeset | 134 R, R, R, R, R, | 
| 272 
bfcb41211c5b
add: final font-rendering, API changes fixed
 Sam <sam@basx.dev> parents: 
253diff
changeset | 135 ]), sampler: sampler)}.toTable)) | 
| 
bfcb41211c5b
add: final font-rendering, API changes fixed
 Sam <sam@basx.dev> parents: 
253diff
changeset | 136 engine.addScene(scene, vertexInput, samplers, transformAttribute="") | 
| 109 | 137 | 
| 115 | 138 # MAINLOOP | 
| 111 
6fd10b7e2d6a
did: allow runtime shader-input definitions
 Sam <sam@basx.dev> parents: 
109diff
changeset | 139 echo "Setup successfull, start rendering" | 
| 128 
9901ec3831d1
did: finish refactoring of render pipeline, yipi! :)
 Sam <sam@basx.dev> parents: 
127diff
changeset | 140 for i in 0 ..< 3: | 
| 189 
df92519d4d68
add: initial code for texture support, not finished, had to completely refactor how to handle material-data (ie scene-wide data, sorry if you ever read this
 Sam <sam@basx.dev> parents: 
188diff
changeset | 141 for scene in scenes.mitems: | 
| 128 
9901ec3831d1
did: finish refactoring of render pipeline, yipi! :)
 Sam <sam@basx.dev> parents: 
127diff
changeset | 142 for i in 0 ..< 1000: | 
| 146 | 143 if engine.updateInputs() != Running or engine.keyIsDown(Escape): | 
| 129 
15d37022625c
add: input handling, small refactoring for renderer
 Sam <sam@basx.dev> parents: 
128diff
changeset | 144 engine.destroy() | 
| 
15d37022625c
add: input handling, small refactoring for renderer
 Sam <sam@basx.dev> parents: 
128diff
changeset | 145 return | 
| 190 
8f2eaf0d2808
add: uncomment some of the prepared texture code, nice interface for scene-global shader values (aka uniforms
 Sam <sam@basx.dev> parents: 
189diff
changeset | 146 setShaderGlobal(scene, "time", getShaderGlobal[float32](scene, "time") + 0.0005'f) | 
| 131 
11666d28e04d
add: recreation of swapchain (at least on linux, windows will likely fail, needs testing
 Sam <sam@basx.dev> parents: 
129diff
changeset | 147 engine.renderScene(scene) | 
| 129 
15d37022625c
add: input handling, small refactoring for renderer
 Sam <sam@basx.dev> parents: 
128diff
changeset | 148 echo "Rendered ", engine.framesRendered, " frames" | 
| 
15d37022625c
add: input handling, small refactoring for renderer
 Sam <sam@basx.dev> parents: 
128diff
changeset | 149 echo "Processed ", engine.eventsProcessed, " events" | 
| 114 
056e08dfad10
yay: first triangle rendering with new engine implmentation
 Sam <sam@basx.dev> parents: 
113diff
changeset | 150 | 
| 
056e08dfad10
yay: first triangle rendering with new engine implmentation
 Sam <sam@basx.dev> parents: 
113diff
changeset | 151 # cleanup | 
| 96 | 152 echo "Start cleanup" | 
| 127 | 153 engine.destroy() | 
| 129 
15d37022625c
add: input handling, small refactoring for renderer
 Sam <sam@basx.dev> parents: 
128diff
changeset | 154 | 
| 
15d37022625c
add: input handling, small refactoring for renderer
 Sam <sam@basx.dev> parents: 
128diff
changeset | 155 when isMainModule: | 
| 
15d37022625c
add: input handling, small refactoring for renderer
 Sam <sam@basx.dev> parents: 
128diff
changeset | 156 main() | 
