summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Bradley <jcb@pikum.xyz>2023-09-26 14:02:53 -0400
committerJonathan Bradley <jcb@pikum.xyz>2023-09-26 14:02:53 -0400
commit9f4088ca25e34bc6fa8429add6237e67dba7da0b (patch)
tree5f9c6b14454d5fe68b539ad196b7644234733d75
parent10b533841de5c0e0b49a2f8a6cf1c53117cf78fc (diff)
expose CompGrBinds and CompInstance details for selected entity
-rw-r--r--src/game.cpp77
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();