diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/game.cpp | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/src/game.cpp b/src/game.cpp index fe983df..f9ef95e 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -347,6 +347,75 @@ void RecordImGuiModalCreateEntityType() { } } +void RecordImGui_CompGrBinds(bool readonly, CompGrBinds *component) { + if (component == nullptr) return; + int inputTextFlags = 0; + if (readonly) + inputTextFlags |= ImGuiInputTextFlags_ReadOnly; + + ImGui::Text("CompGRBinds"); + ImGui::Separator(); + + if (component->vkPipelineLayout) + ImGui::InputScalar("VkPipelineLayout", ImGuiDataType_U64, &component->vkPipelineLayout, nullptr, nullptr, "0x%016lX", ImGuiInputTextFlags_ReadOnly); + if (component->vkDescriptorSet) + ImGui::InputScalar("VkPipelineDescriptorSet", ImGuiDataType_U64, &component->vkDescriptorSet, nullptr, nullptr, "0x%016lX", ImGuiInputTextFlags_ReadOnly); + + if (component->vertexBuffer) + ImGui::InputScalar("VkVertexBuffer", ImGuiDataType_U64, &component->vertexBuffer, nullptr, nullptr, "0x%016lX", ImGuiInputTextFlags_ReadOnly); + ImGui::InputScalar("VertexFirstBinding", ImGuiDataType_U32, &component->vertexFirstBinding, nullptr, nullptr, nullptr, inputTextFlags); + ImGui::InputScalar("VertexCount", ImGuiDataType_U32, &component->vertexCount, nullptr, nullptr, nullptr, inputTextFlags); + ImGui::InputScalar("VertexOffsets", ImGuiDataType_U64, &component->vertexOffsets, nullptr, nullptr, nullptr, inputTextFlags); + + if (component->normalsBuffer) + ImGui::InputScalar("VkNormalBuffer", ImGuiDataType_U64, &component->normalsBuffer, nullptr, nullptr, "0x%016lX", ImGuiInputTextFlags_ReadOnly); + ImGui::InputScalar("NormalFirstBinding", ImGuiDataType_U32, &component->normalsFirstBinding, nullptr, nullptr, nullptr, inputTextFlags); + ImGui::InputScalar("NormalCount", ImGuiDataType_U32, &component->normalsCount, nullptr, nullptr, nullptr, inputTextFlags); + ImGui::InputScalar("NormalOffsets", ImGuiDataType_U64, &component->normalsOffsets, nullptr, nullptr, nullptr, inputTextFlags); + + if (component->uvBuffer) + ImGui::InputScalar("VkUVBuffer", ImGuiDataType_U64, &component->uvBuffer, nullptr, nullptr, "0x%016lX", ImGuiInputTextFlags_ReadOnly); + ImGui::InputScalar("UVFirstBinding", ImGuiDataType_U32, &component->uvFirstBinding, nullptr, nullptr, nullptr, inputTextFlags); + ImGui::InputScalar("UVCount", ImGuiDataType_U32, &component->uvCount, nullptr, nullptr, nullptr, inputTextFlags); + ImGui::InputScalar("UVOffsets", ImGuiDataType_U64, &component->uvOffsets, nullptr, nullptr, nullptr, inputTextFlags); + + if (component->indexBuffer) + ImGui::InputScalar("VkIndexBuffer", ImGuiDataType_U64, &component->indexBuffer, nullptr, nullptr, "0x%016lX", ImGuiInputTextFlags_ReadOnly); + ImGui::InputScalar("IndexFirstBinding", ImGuiDataType_U32, &component->indexFirstBinding, nullptr, nullptr, nullptr, inputTextFlags); + ImGui::InputScalar("IndexCount", ImGuiDataType_U32, &component->indexCount, nullptr, nullptr, nullptr, inputTextFlags); + ImGui::InputScalar("IndexOffsets", ImGuiDataType_U64, &component->indexOffsets, nullptr, nullptr, nullptr, inputTextFlags); + + if (component->instanceBuffer) + ImGui::InputScalar("VkInstanceBuffer", ImGuiDataType_U64, &component->instanceBuffer, nullptr, nullptr, "0x%016lX", ImGuiInputTextFlags_ReadOnly); + ImGui::InputScalar("InstanceFirstBinding", ImGuiDataType_U32, &component->instanceFirstBinding, nullptr, nullptr, nullptr, inputTextFlags); + ImGui::InputScalar("InstanceCount", ImGuiDataType_U32, &component->instanceCount, nullptr, nullptr, nullptr, inputTextFlags); + ImGui::InputScalar("InstanceOffsets", ImGuiDataType_U64, &component->instanceOffsets, nullptr, nullptr, nullptr, inputTextFlags); + + int64_t count = component->instances.Count(); + ImGui::InputScalar("Instance Count", ImGuiDataType_S64, &count, nullptr, nullptr, nullptr, ImGuiInputTextFlags_ReadOnly); + + ImGui::Spacing(); +} + +void RecordImGui_CompInstPos(bool readonly, CompInstance *component) { + if (component == nullptr) return; + int inputTextFlags = 0; + if (readonly) + inputTextFlags |= ImGuiInputTextFlags_ReadOnly; + + ImGui::Text("CompInststance + InstPos"); + ImGui::Separator(); + + ImGui::InputScalar("Instance Index", ImGuiDataType_U64, &component->index, nullptr, nullptr, nullptr, inputTextFlags); + if (component->ptr) { + ImGui::InputScalarN("pos", ImGuiDataType_Float, &component->ptr->pos, 3, nullptr, nullptr, nullptr, inputTextFlags); + ImGui::InputScalarN("rot", ImGuiDataType_Float, &component->ptr->rot, 3, nullptr, nullptr, nullptr, inputTextFlags); + ImGui::InputScalarN("scale", ImGuiDataType_Float, &component->ptr->scale, 3, nullptr, nullptr, nullptr, inputTextFlags); + } + + ImGui::Spacing(); +} + void RecordImGuiSceneEditor() { { if (!ImGui::Begin("SceneEditorEntityTypes", &pkeSettings.editorSettings.isShowingSceneEditor)) { @@ -362,6 +431,14 @@ void RecordImGuiSceneEditor() { if (ImGui::Button("Load")) { LoadSceneFile("test.pstf"); } + if (ImGui::Button("Clear Selection")) { + selectedEntity = EntityHandle_MAX; + } + + if (selectedEntity != EntityHandle_MAX) { + RecordImGui_CompGrBinds(true, ECS_GetGrBinds(selectedEntity)); + RecordImGui_CompInstPos(false, ECS_GetInstance(selectedEntity)); + } RecordImGuiModalCreateEntityType(); |
