Mercurial > games > semicongine
comparison tests/test_materials.nim @ 661:9995702c34b2
add: few improvments for working with textures
| author | Sam <sam@basx.dev> |
|---|---|
| date | Sun, 07 May 2023 18:13:39 +0700 |
| parents | c6414ade79f0 |
| children | ab626e67a1ee |
comparison
equal
deleted
inserted
replaced
| 660:c6414ade79f0 | 661:9995702c34b2 |
|---|---|
| 1 import semicongine | 1 import semicongine |
| 2 | 2 |
| 3 proc main() = | 3 proc main() = |
| 4 var scene = newScene("main", root=newEntity("rect", rect())) | 4 var scene = newScene("main", root=newEntity("rect", rect())) |
| 5 let (R, W) = ([255'u8, 0'u8, 0'u8, 255'u8], [255'u8, 255'u8, 255'u8, 255'u8]) | 5 let (R, W) = ([255'u8, 0'u8, 0'u8, 255'u8], [255'u8, 255'u8, 255'u8, 255'u8]) |
| 6 scene.addTexture("my_texture", TextureImage(width: 5, height: 5, imagedata: @[ | 6 let (RT, WT, PT) = (hexToColorAlpha("A51931").asPixel, hexToColorAlpha("F4F5F8").asPixel, hexToColorAlpha("2D2A4A").asPixel) |
| 7 R, R, R, R, R, | 7 scene.addTexture("my_texture", TextureImage(width: 13, height: 5, imagedata: @[ |
| 8 R, R, W, R, R, | 8 R, R, R, R, R, W, RT, RT, RT, RT, RT, RT, RT, |
| 9 R, W, W, W, R, | 9 R, R, W, R, R, W, WT, WT, WT, WT, WT, WT, WT, |
| 10 R, R, W, R, R, | 10 R, W, W, W, R, W, PT, PT, PT, PT, PT, PT, PT, |
| 11 R, R, R, R, R, | 11 R, R, W, R, R, W, WT, WT, WT, WT, WT, WT, WT, |
| 12 R, R, R, R, R, W, RT, RT, RT, RT, RT, RT, RT, | |
| 12 ])) | 13 ])) |
| 14 var m: Mesh = Mesh(scene.root.components[0]) | |
| 13 | 15 |
| 14 var engine = initEngine("Test materials") | 16 var engine = initEngine("Test materials") |
| 15 const | 17 const |
| 16 vertexInput = @[ | 18 vertexInput = @[ |
| 17 attr[Vec3f]("position", memoryPerformanceHint=PreferFastRead), | 19 attr[Vec3f]("position", memoryPerformanceHint=PreferFastRead), |
| 36 ) | 38 ) |
| 37 engine.setRenderer(engine.gpuDevice.simpleForwardRenderPass(vertexCode, fragmentCode)) | 39 engine.setRenderer(engine.gpuDevice.simpleForwardRenderPass(vertexCode, fragmentCode)) |
| 38 engine.addScene(scene, vertexInput) | 40 engine.addScene(scene, vertexInput) |
| 39 while engine.updateInputs() == Running and not engine.keyIsDown(Escape): | 41 while engine.updateInputs() == Running and not engine.keyIsDown(Escape): |
| 40 engine.renderScene(scene) | 42 engine.renderScene(scene) |
| 41 break | |
| 42 engine.destroy() | 43 engine.destroy() |
| 43 | 44 |
| 44 | 45 |
| 45 when isMainModule: | 46 when isMainModule: |
| 46 main() | 47 main() |
