30 static bool AutoScroll;
31 static std::shared_ptr<spdlog::logger> s_MesaCoreLogger;
32 static std::shared_ptr<spdlog::logger> s_MesaClientLogger;
33 static std::shared_ptr<spdlog::pattern_formatter> s_MesaLogFormatter;
45 LineOffsets.push_back(0);
48 static void AddLog(
const char* fmt, ...)
50 int cacheSize = TextBuffer.size();
53 TextBuffer.appendfv(fmt, args);
56 for (
int newSize = TextBuffer.size(); cacheSize < newSize; cacheSize++)
58 if (TextBuffer[cacheSize] ==
'\n')
60 LineOffsets.push_back(cacheSize + 1);
65 static void Draw(
const char* title,
bool* pOpen =
nullptr)
67 if (!KarmaGui::Begin(title, pOpen))
74 if (KarmaGui::BeginPopup(
"Options"))
76 KarmaGui::Checkbox(
"Auto-scroll", &AutoScroll);
81 if (KarmaGui::Button(
"Options"))
83 KarmaGui::OpenPopup(
"Options");
87 bool clear = KarmaGui::Button(
"Clear");
89 bool copy = KarmaGui::Button(
"Copy");
92 TextFilter.Draw(
"Filter", -100.0f);
94 KarmaGui::Separator();
95 KarmaGui::BeginChild(
"scrolling",
KGVec2(0, 0),
false, KGGuiWindowFlags_HorizontalScrollbar);
103 KarmaGui::LogToClipboard();
106 KarmaGui::PushStyleVar(KGGuiStyleVar_ItemSpacing,
KGVec2(0, 0));
108 const char* buAlpha = TextBuffer.begin();
109 const char* buOmega = TextBuffer.end();
111 if (TextFilter.IsActive())
117 for (
int lineNumber = 0; lineNumber < LineOffsets.Size; lineNumber++)
119 const char* lineStart = buAlpha + LineOffsets[lineNumber];
120 const char* lineEnd = (lineNumber + 1 < LineOffsets.Size) ? (buAlpha + LineOffsets[lineNumber + 1] - 1) : buOmega;
121 if (TextFilter.PassFilter(lineStart, lineEnd))
123 KarmaGui::TextUnformatted(lineStart, lineEnd);
143 clipper.Begin(LineOffsets.Size);
145 while (clipper.Step())
147 for (
int lineNumber = clipper.DisplayStart; lineNumber < clipper.DisplayEnd; lineNumber++)
149 const char* lineStart = buAlpha + LineOffsets[lineNumber];
150 const char* lineEnd = (lineNumber + 1 < LineOffsets.Size) ? (buAlpha + LineOffsets[lineNumber + 1] - 1) : buOmega;
151 KarmaGui::TextUnformatted(lineStart, lineEnd);
156 KarmaGui::PopStyleVar();
158 if (AutoScroll && KarmaGui::GetScrollY() >= KarmaGui::GetScrollMaxY())
160 KarmaGui::SetScrollHereY(1.0f);
163 KarmaGui::EndChild();
183 struct KarmaTuringMachineElectronics
188 std::string biosVendorName;
189 std::string biosVersion;
190 std::string biosReleaseDate;
191 std::string biosCharacteristics;
192 std::string biosROMSize;
193 std::string biosCurrentSetLanguage;
194 std::string biosRestOfTheSupportedLanguages;
197 uint32_t numberOfMemoryDevices;
201 std::string estimatedCapacity;
202 std::string supportingArea;
206 std::string formFactor;
210 std::string bankLocator;
211 std::string manufacturer;
213 std::string serialNumber;
214 std::string partNumber;
215 std::string assetTag;
217 std::string memorySpeed;
218 std::string configuredMemorySpeed;
220 std::string operatingVoltage;
228 std::vector<uint32_t> ramSoftSlots;
230 uint32_t totalRamSize;
231 std::string ramSizeDimensions;
235 std::string cpuDesignation;
237 std::string cpuProcessingfamily;
238 std::string cpuManufacturer;
239 std::string cpuFlags;
241 std::string cpuVersion;
243 std::string cpuOperatingVoltage;
244 std::string cpuExternalClock;
245 std::string cpuMaximumSpeed;
246 std::string cpuCurrentSpeed;
249 std::string cpuSerialNumber;
250 std::string cpuPartNumber;
251 std::string cpuAssettag;
253 std::string cpuCorescount;
254 std::string cpuEnabledCoresCount;
255 std::string cpuThreadCount;
256 std::string cpuTheCharacterstics;
260 std::string cpuSignature;
264 std::string gpuVendor;
265 std::string gpuModelIdentification;
266 std::string gpuVMemory;
268 KarmaTuringMachineElectronics()
271 numberOfMemoryDevices = 0;
272 ramInformation =
nullptr;
278 static void GaugeSystemMemoryDevices(random_access_memory* ramCluster);
281 static void FindRealCapacityOfRam();
284 static bool IsPhysicalRamPresent(
const random_access_memory& ramScam);
287 static void FillTheSystemRamStructure(SystemRAM& destinationStructure, random_access_memory& sourceStructure);
326 static void RevealMainFrame(KGGuiID mainMesaDockID, std::shared_ptr<Scene> scene,
const CallbacksFromEditor& editorCallbacks);
327 static void DrawKarmaMainMenuBarMesa();
328 static void DrawMainMenuFileListMesa();
329 static void DrawKarmaLogMesa(KGGuiID mainMesaDockID);
330 static void DrawKarmaSceneHierarchyPanelMesa();
331 static void Draw3DModelExhibitorMesa(std::shared_ptr<Scene> scene);
332 static void DrawContentBrowser(
const std::function<
void(std::string) >& openSceneCallback);
333 static void DrawMemoryExhibitor();
336 static void ShowAboutKarmaMesa(
bool* pbOpen);
339 static void MesaShutDownRoutine();
348 static void SetElectronicsRamInformationToNull();
351 static int ImStrlenW(
const KGWchar* str);
352 static void QueryForTuringMachineElectronics();
353 static uint32_t ChurnUint32FromString(
const std::string& ramString);
354 static std::string ChurnDimensionsFromString(
const std::string& ramString);
355 static double HexStringToDecimal(
const std::string& hexString);
358 static void DumpUObjectStatistics(
void* InObject,
const std::string& InName,
size_t InSize,
size_t InAlignment,
class UClass* InClass);
361 static std::string notAvailableText;
368 static bool m_EditorInitialized;
369 static bool m_RefreshRenderingResources;
372 static std::filesystem::path m_CurrentDirectory;
375 static uint32_t m_DirectoryIcon;
376 static uint32_t m_FileIcon;
382 static bool m_ViewportFocused;
383 static bool m_ViewportHovered;
Definition KarmaGui.h:2282
Definition KarmaGui.h:2255