Mercurial > games > semicongine
changeset 328:8d0ffcacc7e3
did: some cleanup
author | Sam <sam@basx.dev> |
---|---|
date | Fri, 25 Aug 2023 01:14:04 +0700 |
parents | a63bd8f29252 |
children | 69e18f69713b |
files | src/semicongine/renderer.nim src/semicongine/scene.nim tests/test_vulkan_wrapper.nim |
diffstat | 3 files changed, 8 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/src/semicongine/renderer.nim Fri Aug 25 01:09:23 2023 +0700 +++ b/src/semicongine/renderer.nim Fri Aug 25 01:14:04 2023 +0700 @@ -165,6 +165,7 @@ var indexBufferOffset = 0 for hint in MemoryPerformanceHint: perLocationOffsets[hint] = 0 + for (meshIndex, mesh) in enumerate(scene.meshes): for attribute in inputs: scenedata.vertexBufferOffsets[(meshIndex, attribute.name)] = perLocationOffsets[attribute.memoryPerformanceHint] @@ -173,7 +174,7 @@ if perLocationOffsets[attribute.memoryPerformanceHint] mod VERTEX_ATTRIB_ALIGNMENT != 0: perLocationOffsets[attribute.memoryPerformanceHint] += VERTEX_ATTRIB_ALIGNMENT - (perLocationOffsets[attribute.memoryPerformanceHint] mod VERTEX_ATTRIB_ALIGNMENT) - # fill offsets (as sequence corresponds to shader input binding) + # fill offsets per pipeline (as sequence corresponds to shader input binding) var offsets: Table[VkPipeline, seq[(string, MemoryPerformanceHint, int)]] for subpass_i in 0 ..< renderer.renderPass.subpasses.len: for materialType, pipeline in renderer.renderPass.subpasses[subpass_i].pipelines.pairs: @@ -181,6 +182,7 @@ for attribute in pipeline.inputs: offsets[pipeline.vk].add (attribute.name, attribute.memoryPerformanceHint, scenedata.vertexBufferOffsets[(meshIndex, attribute.name)]) + # create drawables let indexed = mesh.indexType != MeshIndexType.None var drawable = Drawable( elementCount: if indexed: mesh.indicesCount else: mesh.vertexCount,
--- a/src/semicongine/scene.nim Fri Aug 25 01:09:23 2023 +0700 +++ b/src/semicongine/scene.nim Fri Aug 25 01:14:04 2023 +0700 @@ -12,8 +12,6 @@ Scene* = object name*: string shaderGlobals*: Table[string, DataList] - transformAttribute*: string = "transform" - materialIndexAttribute*: string = "materialIndex" meshes*: seq[Mesh] func addShaderGlobal*[T](scene: var Scene, name: string, data: T) =
--- a/tests/test_vulkan_wrapper.nim Fri Aug 25 01:09:23 2023 +0700 +++ b/tests/test_vulkan_wrapper.nim Fri Aug 25 01:14:04 2023 +0700 @@ -198,15 +198,14 @@ # INIT SCENES var scenes = [ - # Scene(name: "simple", meshes: scene_simple()), - # Scene(name: "different mesh types", meshes: scene_different_mesh_types()), - # Scene(name: "primitives", meshes: scene_primitives()), - # Scene(name: "flag", meshes: scene_flag()), - # Scene(name: "multimaterial", meshes: scene_multi_material(), materialIndexAttribute: ""), + Scene(name: "simple", meshes: scene_simple()), + Scene(name: "different mesh types", meshes: scene_different_mesh_types()), + Scene(name: "primitives", meshes: scene_primitives()), + Scene(name: "flag", meshes: scene_flag()), Scene(name: "multimaterial", meshes: scene_multi_material()), ] - scenes[0].addShaderGlobal("color", newVec4f(1, 0, 0, 1)) + scenes[4].addShaderGlobal("color", newVec4f(1, 0, 0, 1)) for scene in scenes.mitems: scene.addShaderGlobal("time", 0.0'f32) engine.addScene(scene)