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() |