Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 10 additions & 3 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ set(IMGUI_SOURCES
${IMGUI_DIR}/imgui_widgets.cpp
${IMGUI_DIR}/backends/imgui_impl_sdl3.cpp
${IMGUI_DIR}/backends/imgui_impl_vulkan.cpp
${IMGUI_DIR}/misc/cpp/imgui_stdlib.cpp
${CMAKE_CURRENT_SOURCE_DIR}/extern/ImGuiFileDialog/ImGuiFileDialog.cpp
)
set(FASTGLTF_DIR ${CMAKE_CURRENT_SOURCE_DIR}/extern/fastgltf)
Expand Down Expand Up @@ -161,8 +162,8 @@ set(RENDERER_SOURCES
src/engine/renderer/vk_types.cpp
src/engine/renderer/vk_types.h
src/engine/renderer/renderer_constants.h
src/engine/renderer/assets/render_object/render_object.h
src/engine/renderer/assets/render_object/render_object.cpp
src/engine/renderer/assets/render_object/render_object_gltf.h
src/engine/renderer/assets/render_object/render_object_gltf.cpp
src/engine/renderer/assets/render_object/render_object_types.h
src/engine/renderer/assets/render_object/render_object_types.cpp
src/engine/renderer/assets/render_object/render_reference.h
Expand Down Expand Up @@ -276,7 +277,6 @@ set(TEMP_SOURCES
src/engine/renderer/pipelines/post/post_process/post_process_pipeline_types.h
src/engine/renderer/pipelines/post/temporal_antialiasing/temporal_antialiasing_pipeline_types.h
src/engine/renderer/pipelines/debug/debug_renderer_types.h
src/engine/core/game_object/game_object_factory.cpp
src/engine/core/game_object/game_object_factory.h
src/engine/renderer/pipelines/debug/debug_highlight_types.h
src/engine/renderer/resources/vulkan_resource.cpp
Expand All @@ -303,6 +303,12 @@ set(TEMP_SOURCES
src/engine/renderer/resources/resources_fwd.h
src/engine/renderer/resources/shader_module.cpp
src/engine/renderer/resources/shader_module.h
src/engine/core/factory/object_factory.h
src/engine/renderer/assets/render_object/render_object.cpp
src/engine/renderer/assets/render_object/render_object.h
src/engine/renderer/assets/render_object/render_object_fwd.h
src/engine/core/events/event_dispatcher.cpp
src/engine/core/events/event_dispatcher.h
)

add_executable(WillEngine main.cpp
Expand All @@ -324,6 +330,7 @@ target_include_directories(WillEngine PRIVATE
${Vulkan_INCLUDE_DIRS} # Vulkan
${IMGUI_DIR} # ImGui
${IMGUI_DIR}/backends # ImGui backends
${IMGUI_DIR}/misc/cpp # ImGui cpp (stdlib)
${CMAKE_CURRENT_SOURCE_DIR}/extern/
${CMAKE_CURRENT_SOURCE_DIR}/extern/JoltPhysics # Jolt Physics
${CMAKE_CURRENT_SOURCE_DIR}/extern/shaderc # ShaderC
Expand Down
102 changes: 95 additions & 7 deletions assets/maps/newMap.willmap
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
},
"metadata": {
"name": "newMap",
"created": "2025-06-02 18:35:06",
"created": "2025-06-18 22:58:52",
"formatVersion": 1
},
"rootComponents": {
Expand Down Expand Up @@ -108,7 +108,7 @@
"name": "GameObject_0",
"transform": {
"position": {
"x": -600.9000244140625,
"x": 0.0,
"y": 0.0,
"z": 0.0
},
Expand All @@ -126,10 +126,6 @@
},
"components": {
"": {
"renderReference": 2592612823,
"renderMeshIndex": 0,
"renderIsVisible": true,
"renderIsShadowCaster": true,
"transform": {
"position": {
"x": -15.367568016052246,
Expand Down Expand Up @@ -158,7 +154,99 @@
"name": "GameObject_1",
"transform": {
"position": {
"x": 4000.0,
"x": 40.0,
"y": 0.0,
"z": 0.0
},
"rotation": {
"x": 0.0,
"y": 0.0,
"z": 0.0,
"w": 1.0
},
"scale": {
"x": 1.0,
"y": 1.0,
"z": 1.0
}
},
"components": {
"": {
"transform": {
"position": {
"x": 0.0,
"y": 0.0,
"z": 0.0
},
"rotation": {
"x": 0.0,
"y": 0.0,
"z": 0.0,
"w": 1.0
},
"scale": {
"x": 0.00800000037997961,
"y": 0.00800000037997961,
"z": 0.00800000037997961
}
},
"componentType": "MeshRendererComponent"
}
}
},
{
"id": 2,
"gameObjectType": "GameObject",
"name": "GameObject_2",
"transform": {
"position": {
"x": 0.0,
"y": 0.0,
"z": 0.0
},
"rotation": {
"x": 0.0,
"y": 0.0,
"z": 0.0,
"w": 1.0
},
"scale": {
"x": 1.0,
"y": 1.0,
"z": 1.0
}
},
"components": {
"": {
"transform": {
"position": {
"x": 0.0,
"y": 0.0,
"z": 0.0
},
"rotation": {
"x": 0.0,
"y": 0.0,
"z": 0.0,
"w": 1.0
},
"scale": {
"x": 0.00800000037997961,
"y": 0.00800000037997961,
"z": 0.00800000037997961
}
},
"componentType": "MeshRendererComponent"
}
}
},
{
"id": 3,
"gameObjectType": "GameObject",
"name": "GameObject_3",
"transform": {
"position": {
"x": 0.0,
"y": 0.0,
"z": 0.0
},
Expand Down
8 changes: 0 additions & 8 deletions assets/models/AlphaBlendModeTest.willmodel

This file was deleted.

38 changes: 38 additions & 0 deletions assets/models/CHANGELIST.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# WillModel Format Changelist

## Version 0.1.0 - 2025-06-18

### Initial Release

- **Core Schema:** Basic .willmodel format with renderObject specification
- **Supported Types:** GLTF, GLB support via RenderObjectGLTF
- **Fields:**
- `version`: Format version string
- `renderObject.sourcePath`: Path to source asset file (.glb/.gltf)
- `renderObject.name`: Human-readable name
- `renderObject.id`: Unique hash-based identifier generated by the engine based on the sourcepath

### Serializer Features

- **Generation:** `generateWillModel()` from the engine in debug mode (Editor-mode)
- **Validation:** Extension-based type detection
- **Format:** JSON with 4-space indentation

### Schema

```json
{
"version": {
"major": "uint32",
"minor": "uint32",
"patch": "uint32"
},
"renderObject": {
"sourcePath": "string",
"name": "string",
"type": "string",
"id": "uint32"
}
}
```

8 changes: 0 additions & 8 deletions assets/models/mySphere.willmodel

This file was deleted.

8 changes: 0 additions & 8 deletions assets/models/primitives.willmodel

This file was deleted.

8 changes: 0 additions & 8 deletions assets/models/sponza-uastc.willmodel

This file was deleted.

8 changes: 0 additions & 8 deletions assets/models/sponza/Sponza01.willmodel

This file was deleted.

10 changes: 7 additions & 3 deletions assets/models/sponza2/Sponza.willmodel
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
{
"renderObject": {
"gltfPath": "assets\\models\\sponza2\\Sponza.gltf",
"id": 195023067,
"name": "Sponza"
"name": "Sponza",
"sourcePath": "assets\\models\\sponza2\\Sponza.gltf"
},
"version": 1
"version": {
"major": 0,
"minor": 1,
"patch": 0
}
}
17 changes: 9 additions & 8 deletions assets/settings.willengine
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,15 @@
},
"cameraSettings": {
"position": [
26.02372169494629,
4.421646595001221,
-1.156583547592163
-0.12309487164020538,
9.832075119018555,
-0.149642214179039
],
"rotation": [
-0.06683584302663803,
-0.7189698815345764,
-0.06981384754180908,
0.6882887482643127
-0.4356941878795624,
-0.5376664400100708,
-0.3827509880065918,
0.6120350956916809
],
"fov": 1.3089969158172607,
"aspectRatio": 1.7777777910232544,
Expand Down Expand Up @@ -133,6 +133,7 @@
}
},
"editorSettings": {
"saveOnExit": true
"saveSettingsOnExit": true,
"saveMapOnExit": true
}
}
23 changes: 23 additions & 0 deletions extern/imgui/misc/README.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@

misc/cpp/
InputText() wrappers for C++ standard library (STL) type: std::string.
This is also an example of how you may wrap your own similar types.

misc/debuggers/
Helper files for popular debuggers.
With the .natvis file, types like ImVector<> will be displayed nicely in Visual Studio debugger.

misc/fonts/
Fonts loading/merging instructions (e.g. How to handle glyph ranges, how to merge icons fonts).
Command line tool "binary_to_compressed_c" to create compressed arrays to embed data in source code.
Suggested fonts and links.

misc/freetype/
Font atlas builder/rasterizer using FreeType instead of stb_truetype.
Benefit from better FreeType rasterization, in particular for small fonts.

misc/single_file/
Single-file header stub.
We use this to validate compiling all *.cpp files in a same compilation unit.
Users of that technique (also called "Unity builds") can generally provide this themselves,
so we don't really recommend you use this in your projects.
13 changes: 13 additions & 0 deletions extern/imgui/misc/cpp/README.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@

imgui_stdlib.h + imgui_stdlib.cpp
InputText() wrappers for C++ standard library (STL) type: std::string.
This is also an example of how you may wrap your own similar types.

imgui_scoped.h
[Experimental, not currently in main repository]
Additional header file with some RAII-style wrappers for common Dear ImGui functions.
Try by merging: https://github.com/ocornut/imgui/pull/2197
Discuss at: https://github.com/ocornut/imgui/issues/2096

See more C++ related extension (fmt, RAII, syntaxis sugar) on Wiki:
https://github.com/ocornut/imgui/wiki/Useful-Extensions#cness
Loading