Skip to content

Commit 629679e

Browse files
committed
WIP Texture Rendering for debugging
1 parent af84809 commit 629679e

26 files changed

+777
-192
lines changed

Source/Game-Lib/Game-Lib/Editor/AssetBrowser.cpp

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ namespace Editor
4242
Renderer::TextureDesc textureDesc;
4343
textureDesc.path = "Data/Texture/interface/icons/ability_gouge.dds";
4444
Renderer::TextureID textureID = _renderer->LoadTexture(textureDesc);
45-
_defaultImageHandle = _renderer->GetImguiImageHandle(textureID);
45+
_defaultImageHandle = _renderer->GetImguiTextureID(textureID);
4646
}
4747

4848
void AssetBrowser::DrawImGui()
@@ -152,7 +152,8 @@ namespace Editor
152152

153153
if (useFileRow)
154154
{
155-
ImVec2 itemSize(ImGui::GetWindowContentRegionWidth(),
155+
156+
ImVec2 itemSize(ImGui::GetWindowContentRegionMax().x,
156157
ImGui::GetStyle().FramePadding.y * 2 + ImGui::GetTextLineHeightWithSpacing());
157158

158159
FakeScrollingArea scrollingArea(itemSize, static_cast<i32>(_searchedFiles.size()));
@@ -327,7 +328,7 @@ namespace Editor
327328
bool AssetBrowser::CanDisplayMore(ImVec2 size)
328329
{
329330
f32 posX = ImGui::GetCursorPosX();
330-
f32 availableX = ImGui::GetWindowContentRegionWidth();
331+
f32 availableX = ImGui::GetWindowContentRegionMax().x;
331332

332333
return ((availableX - posX) > size.x);
333334
}
@@ -399,9 +400,12 @@ namespace Editor
399400
Renderer::TextureDesc textureDesc;
400401
textureDesc.path = item.string();
401402
Renderer::TextureID textureID = _renderer->LoadTexture(textureDesc);
402-
_images[i] = _renderer->GetImguiImageHandle(textureID);
403-
_imagesSize[i] = ImVec2(static_cast<f32>(_renderer->GetTextureWidth(textureID)),
404-
static_cast<f32>(_renderer->GetTextureHeight(textureID)));
403+
_images[i] = _renderer->GetImguiTextureID(textureID);
404+
405+
Renderer::TextureBaseDesc textureBaseDesc = _renderer->GetTextureDesc(textureID);
406+
407+
_imagesSize[i] = ImVec2(static_cast<f32>(textureBaseDesc.width),
408+
static_cast<f32>(textureBaseDesc.height));
405409
}
406410

407411
_currentImage = _images[i];

Source/Game-Lib/Game-Lib/Editor/AssetBrowser.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -99,11 +99,11 @@ namespace Editor
9999
std::string _searchedString;
100100
std::vector<fs::path> _searchedFiles;
101101

102-
std::map<int, void*> _images;
102+
std::map<int, u64> _images;
103103
std::map<int, vec2> _imagesSize;
104104

105-
void* _defaultImageHandle = nullptr;
106-
void* _currentImage = nullptr;
105+
u64 _defaultImageHandle = 0;
106+
u64 _currentImage = 0;
107107
vec2 _currentSize;
108108

109109
f32 _averageFontWidth = -1.f;

Source/Game-Lib/Game-Lib/Editor/CameraInfo.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ namespace Editor
132132

133133
ImGui::Text("Camera Save List (Names)");
134134

135-
if (ImGui::ListBoxHeader("##camerasavelistbox"))
135+
if (ImGui::BeginListBox("##camerasavelistbox"))
136136
{
137137
u32 numCameraSaves = cameraSaveStorage->GetNumRows();
138138

@@ -153,7 +153,7 @@ namespace Editor
153153
return true;
154154
});
155155

156-
ImGui::ListBoxFooter();
156+
ImGui::EndListBox();
157157
}
158158

159159

Source/Game-Lib/Game-Lib/Editor/EditorHandler.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -327,18 +327,18 @@ namespace Editor
327327
ImGuiID viewport;
328328
ImGuiID assetBrowser = ImGui::DockBuilderSplitNode(left, ImGuiDir_Down, 0.3f, NULL, &viewport);
329329

330-
ImGui::DockBuilderDockWindow(_inspector->GetName(), inspector, 0);
330+
ImGui::DockBuilderDockWindow(_inspector->GetName(), inspector);
331331

332-
ImGui::DockBuilderDockWindow(_hierarchy->GetName(), hierarchy, 0);
333-
ImGui::DockBuilderDockWindow("Map", hierarchy, 1);
334-
ImGui::DockBuilderDockWindow("Performance", hierarchy, 2);
335-
ImGui::DockBuilderDockWindow("Camera Info", hierarchy, 3);
332+
ImGui::DockBuilderDockWindow(_hierarchy->GetName(), hierarchy);
333+
ImGui::DockBuilderDockWindow("Map", hierarchy);
334+
ImGui::DockBuilderDockWindow("Performance", hierarchy);
335+
ImGui::DockBuilderDockWindow("Camera Info", hierarchy);
336336

337-
ImGui::DockBuilderDockWindow(_actionStackEditor->GetName(), belowHierarchy, 0);
337+
ImGui::DockBuilderDockWindow(_actionStackEditor->GetName(), belowHierarchy);
338338

339-
ImGui::DockBuilderDockWindow(_viewport->GetName(), viewport, 0);
339+
ImGui::DockBuilderDockWindow(_viewport->GetName(), viewport);
340340

341-
ImGui::DockBuilderDockWindow(_assetBrowser->GetName(), assetBrowser, 0);
341+
ImGui::DockBuilderDockWindow(_assetBrowser->GetName(), assetBrowser);
342342

343343
ImGui::DockBuilderFinish(_mainDockID);
344344

Source/Game-Lib/Game-Lib/Editor/ItemEditor.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ namespace Editor
3838
std::string label;
3939
};
4040

41-
static std::map<u32, void*> g_images;
42-
static ImTextureID g_currentIconTextureID = nullptr;
41+
static std::map<u32, u64> g_images;
42+
static ImTextureID g_currentIconTextureID = 0;
4343
static bool g_iconPickerEnabled = false;
4444

4545
static i32 g_currentItemIndex = 0;
@@ -59,7 +59,7 @@ namespace Editor
5959
static bool g_shieldTemplateEditorEnabled = false;
6060

6161
// Dummy icon functions
62-
ImTextureID GetIconTexture(u32 iconID)
62+
u64 GetIconTexture(u32 iconID)
6363
{
6464
if (!g_images[iconID])
6565
{
@@ -77,7 +77,7 @@ namespace Editor
7777
textureDesc.path = iconStorage->GetString(icon.texture);
7878

7979
Renderer::TextureID textureID = renderer->LoadTexture(textureDesc);
80-
g_images[iconID] = renderer->GetImguiImageHandle(textureID);
80+
g_images[iconID] = renderer->GetImguiTextureID(textureID);
8181
}
8282

8383
return g_images[iconID];
@@ -226,7 +226,7 @@ namespace Editor
226226

227227
iconStorage->EachInRange(startIndex, endIndex - startIndex, [&itemStorage, &iconStorage, &numIconsAdded, &isItemDirty](u32 id, const ::Database::Shared::Icon& icon) -> bool
228228
{
229-
if (ImGui::ImageButton(GetIconTexture(id), ImVec2(g_iconSize, g_iconSize)))
229+
if (ImGui::ImageButton("Icon", GetIconTexture(id), ImVec2(g_iconSize, g_iconSize)))
230230
{
231231
itemStorage->Get<Database::Item::Item>(g_currentItemIndex).iconID = id;
232232
isItemDirty = true;
@@ -274,7 +274,7 @@ namespace Editor
274274
u32 id = g_filteredIconIDs[i];
275275
const auto& icon = iconStorage->Get<::Database::Shared::Icon>(id);
276276

277-
if (ImGui::ImageButton(GetIconTexture(id), ImVec2(g_iconSize, g_iconSize)))
277+
if (ImGui::ImageButton("Icon", GetIconTexture(id), ImVec2(g_iconSize, g_iconSize)))
278278
{
279279
itemStorage->Get<Database::Item::Item>(g_currentItemIndex).iconID = id;
280280
isItemDirty = true;

Source/Game-Lib/Game-Lib/Editor/MapSelector.cpp

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ namespace Editor
2929
{
3030
}
3131

32-
bool DrawMapItem(ClientDB::Data* mapStorage, u32 mapID, const ClientDB::Definitions::Map& map, std::string& filter, u32& selectedMapID, u32& popupMapID, void** mapIcons)
32+
bool DrawMapItem(ClientDB::Data* mapStorage, u32 mapID, const ClientDB::Definitions::Map& map, std::string& filter, u32& selectedMapID, u32& popupMapID, ImTextureID* mapIcons)
3333
{
3434
static const char* InstanceTypeToName[] =
3535
{
@@ -127,44 +127,49 @@ namespace Editor
127127
fs::path path = fs::absolute("Data/Texture/interface/worldmap/worldmap-icon.dds");
128128
textureDesc.path = path.string();
129129
Renderer::TextureID textureID = renderer->LoadTexture(textureDesc);
130-
_mapIcons[0] = renderer->GetImguiImageHandle(textureID);
131-
_mapIconSizes[0] = ImVec2(static_cast<f32>(renderer->GetTextureWidth(textureID)), static_cast<f32>(renderer->GetTextureHeight(textureID)));
130+
_mapIcons[0] = renderer->GetImguiTextureID(textureID);
131+
Renderer::TextureBaseDesc textureBaseDesc = renderer->GetTextureDesc(textureID);
132+
_mapIconSizes[0] = ImVec2(static_cast<f32>(textureBaseDesc.width), static_cast<f32>(textureBaseDesc.height));
132133
}
133134

134135
// Load Dungeon Map Icon
135136
{
136137
fs::path path = fs::absolute("Data/Texture/interface/minimap/dungeon_icon.dds");
137138
textureDesc.path = path.string();
138139
Renderer::TextureID textureID = renderer->LoadTexture(textureDesc);
139-
_mapIcons[1] = renderer->GetImguiImageHandle(textureID);
140-
_mapIconSizes[1] = ImVec2(static_cast<f32>(renderer->GetTextureWidth(textureID)), static_cast<f32>(renderer->GetTextureHeight(textureID)));
140+
_mapIcons[1] = renderer->GetImguiTextureID(textureID);
141+
Renderer::TextureBaseDesc textureBaseDesc = renderer->GetTextureDesc(textureID);
142+
_mapIconSizes[1] = ImVec2(static_cast<f32>(textureBaseDesc.width), static_cast<f32>(textureBaseDesc.height));
141143
}
142144

143145
// Load Raid Map Icon
144146
{
145147
fs::path path = fs::absolute("Data/Texture/interface/minimap/raid_icon.dds");
146148
textureDesc.path = path.string();
147149
Renderer::TextureID textureID = renderer->LoadTexture(textureDesc);
148-
_mapIcons[2] = renderer->GetImguiImageHandle(textureID);
149-
_mapIconSizes[2] = ImVec2(static_cast<f32>(renderer->GetTextureWidth(textureID)), static_cast<f32>(renderer->GetTextureHeight(textureID)));
150+
_mapIcons[2] = renderer->GetImguiTextureID(textureID);
151+
Renderer::TextureBaseDesc textureBaseDesc = renderer->GetTextureDesc(textureID);
152+
_mapIconSizes[2] = ImVec2(static_cast<f32>(textureBaseDesc.width), static_cast<f32>(textureBaseDesc.height));
150153
}
151154

152155
// Load Battleground Map Icon
153156
{
154157
fs::path path = fs::absolute("Data/Texture/interface/battlefieldframe/ui-battlefield-icon.dds");
155158
textureDesc.path = path.string();
156159
Renderer::TextureID textureID = renderer->LoadTexture(textureDesc);
157-
_mapIcons[3] = renderer->GetImguiImageHandle(textureID);
158-
_mapIconSizes[3] = ImVec2(static_cast<f32>(renderer->GetTextureWidth(textureID)), static_cast<f32>(renderer->GetTextureHeight(textureID)));
160+
_mapIcons[3] = renderer->GetImguiTextureID(textureID);
161+
Renderer::TextureBaseDesc textureBaseDesc = renderer->GetTextureDesc(textureID);
162+
_mapIconSizes[3] = ImVec2(static_cast<f32>(textureBaseDesc.width), static_cast<f32>(textureBaseDesc.height));
159163
}
160164

161165
// Load Arena Map Icon
162166
{
163167
fs::path path = fs::absolute("Data/Texture/interface/calendar/ui-calendar-event-pvp.dds");
164168
textureDesc.path = path.string();
165169
Renderer::TextureID textureID = renderer->LoadTexture(textureDesc);
166-
_mapIcons[4] = renderer->GetImguiImageHandle(textureID);
167-
_mapIconSizes[4] = ImVec2(static_cast<f32>(renderer->GetTextureWidth(textureID)), static_cast<f32>(renderer->GetTextureHeight(textureID)));
170+
_mapIcons[4] = renderer->GetImguiTextureID(textureID);
171+
Renderer::TextureBaseDesc textureBaseDesc = renderer->GetTextureDesc(textureID);
172+
_mapIconSizes[4] = ImVec2(static_cast<f32>(textureBaseDesc.width), static_cast<f32>(textureBaseDesc.height));
168173
}
169174
}
170175

Source/Game-Lib/Game-Lib/Editor/MapSelector.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ namespace Editor
1717
void ShowListViewWithIcons();
1818

1919
private:
20-
void* _mapIcons[5] = { nullptr };
20+
u64 _mapIcons[5] = { 0 };
2121
vec2 _mapIconSizes[5];
2222

2323
u32 _currentSelectedMapID = 0;

Source/Game-Lib/Game-Lib/Editor/PerformanceDiagnostics.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -325,7 +325,7 @@ namespace Editor
325325
if (ImGui::BeginChild("##SurvivingInstances", ImVec2(0, (constraint < 0.f) ? 0 : constraint), true, ImGuiWindowFlags_HorizontalScrollbar))
326326
{
327327
f32 textWidth = ImGui::CalcTextSize(text.c_str()).x;
328-
f32 windowWidth = ImGui::GetWindowContentRegionWidth();
328+
f32 windowWidth = ImGui::GetWindowContentRegionMax().x;
329329
f32 textPos = windowWidth - textWidth;
330330

331331
ImGui::Text("Instances");
@@ -373,7 +373,7 @@ namespace Editor
373373
if (ImGui::BeginChild("##SurvivingTriangles", ImVec2(0, (constraint < 0.f) ? 0 : constraint), true, ImGuiWindowFlags_HorizontalScrollbar))
374374
{
375375
f32 textWidth = ImGui::CalcTextSize(text.c_str()).x;
376-
f32 windowWidth = ImGui::GetWindowContentRegionWidth();
376+
f32 windowWidth = ImGui::GetWindowContentRegionMax().x;
377377
f32 textPos = windowWidth - textWidth;
378378

379379
ImGui::Text("Triangles");
@@ -826,7 +826,7 @@ namespace Editor
826826
i32 strLength = StringUtils::FormatString(str, sizeof(str), "%s / %s (%.0f%%)", StringUtils::FormatThousandSeparator(survivedDrawCalls).c_str(), StringUtils::FormatThousandSeparator(drawCalls).c_str(), percent);
827827

828828
f32 textWidth = ImGui::CalcTextSize(str).x;
829-
f32 windowWidth = ImGui::GetWindowContentRegionWidth();
829+
f32 windowWidth = ImGui::GetWindowContentRegionMax().x;
830830

831831
f32 textPos = windowWidth - textWidth;
832832

Source/Game-Lib/Game-Lib/Editor/Viewport.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -135,8 +135,8 @@ namespace Editor
135135
ImGuizmo::SetDrawlist(ImGui::GetWindowDrawList());
136136

137137
RenderResources& resources = gameRenderer->GetRenderResources();
138-
void* imageHandle = renderer->GetImguiImageHandle(resources.sceneColor);
139-
ImGui::Image(imageHandle, contentRegionAvail, vec2(0, 0), vec2(1, 1));
138+
ImTextureID textureID = renderer->GetImguiTextureID(resources.sceneColor);
139+
ImGui::Image(textureID, contentRegionAvail, vec2(0, 0), vec2(1, 1));
140140

141141
vec2 viewportMin = ImGui::GetItemRectMin();
142142
vec2 viewportMax = ImGui::GetItemRectMax();

0 commit comments

Comments
 (0)