7#include "imgui/backends/imgui_impl_null.h"
8#include "imgui/imgui.h"
21 if (draw_data->Textures ==
nullptr) {
24 for (ImTextureData* tex : *draw_data->Textures) {
25 switch (tex->Status) {
26 case ImTextureStatus_WantCreate:
27 case ImTextureStatus_WantUpdates:
28 tex->SetStatus(ImTextureStatus_OK);
30 case ImTextureStatus_WantDestroy:
31 tex->SetTexID(ImTextureID_Invalid);
32 tex->SetStatus(ImTextureStatus_Destroyed);
43 LOG_INFO(
"NullWindowBackend",
"Initializing headless window backend...");
48 return absl::OkStatus();
52 LOG_INFO(
"NullWindowBackend",
"Shutting down headless window backend");
59 LOG_INFO(
"NullWindowBackend",
"Shutting down graphics arena...");
63 return absl::OkStatus();
104 if (ImGui::GetCurrentContext() ==
nullptr) {
105 IMGUI_CHECKVERSION();
106 ImGui::CreateContext();
107 ImGuiIO& io = ImGui::GetIO();
110 ImGuiConfigFlags_DockingEnable;
111 io.IniFilename =
nullptr;
113 io.DeltaTime = 1.0f / 60.0f;
119 ImGui_ImplNull_Init();
124 LOG_WARN(
"NullWindowBackend",
"Failed to load package fonts: %s",
125 status.ToString().c_str());
130 return absl::OkStatus();
137 ImGui_ImplNull_Shutdown();
138 ImGui::DestroyContext();
145 ImGui_ImplNull_NewFrame();
148 ImGuiIO& io = ImGui::GetIO();
150 io.DeltaTime = 1.0f / 60.0f;
157 if (ImDrawData* draw_data = ImGui::GetDrawData()) {
158 AcknowledgeTextureRequests(draw_data);
Defines an abstract interface for all rendering operations.
#define LOG_WARN(category, format,...)
#define LOG_INFO(category, format,...)
void ConfigureImGuiDiagnostics(ImGuiIO &io, ImGuiDiagnosticsBuild build)
Set Dear ImGui's error-recovery and ID-conflict options.
absl::Status LoadPackageFonts()