Viewport: Reorganized viewport enable flags. Both user + platform + renderer need to enable a flag. (#1542)

This commit is contained in:
omar
2018-03-07 12:35:26 +01:00
parent 52c78820aa
commit 9dcc07422e
17 changed files with 56 additions and 35 deletions

View File

@ -115,7 +115,7 @@ int main(int, char**)
// Setup ImGui binding
ImGui::CreateContext();
ImGuiIO& io = ImGui::GetIO(); (void)io;
io.ConfigFlags |= ImGuiConfigFlags_MultiViewports;
io.ConfigFlags |= ImGuiConfigFlags_EnableViewports;
//io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls
ImGui_ImplWin32_Init(hwnd);

View File

@ -118,7 +118,7 @@ int main(int, char**)
// Setup ImGui binding
ImGui::CreateContext();
ImGuiIO& io = ImGui::GetIO(); (void)io;
io.ConfigFlags |= ImGuiConfigFlags_MultiViewports;
io.ConfigFlags |= ImGuiConfigFlags_EnableViewports;
//io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls
ImGui_ImplWin32_Init(hwnd);

View File

@ -289,7 +289,7 @@ int main(int, char**)
// Setup ImGui binding
ImGui::CreateContext();
ImGuiIO& io = ImGui::GetIO(); (void)io;
io.ConfigFlags |= ImGuiConfigFlags_MultiViewports;
io.ConfigFlags |= ImGuiConfigFlags_EnableViewports;
//io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls
ImGui_ImplWin32_Init(hwnd);

View File

@ -479,7 +479,8 @@ bool ImGui_ImplDX10_Init(ID3D10Device* device)
ImGuiIO& io = ImGui::GetIO();
g_pd3dDevice = device;
g_pFactory = pFactory;
if (io.ConfigFlags & ImGuiConfigFlags_MultiViewports)
io.ConfigFlags |= ImGuiConfigFlags_RendererHasViewports;
if (io.ConfigFlags & ImGuiConfigFlags_EnableViewports)
ImGui_ImplDX10_InitPlatformInterface();
return true;
}

View File

@ -487,7 +487,8 @@ bool ImGui_ImplDX11_Init(ID3D11Device* device, ID3D11DeviceContext* device_co
g_pd3dDevice = device;
g_pd3dDeviceContext = device_context;
g_pFactory = pFactory;
if (io.ConfigFlags & ImGuiConfigFlags_MultiViewports)
io.ConfigFlags |= ImGuiConfigFlags_RendererHasViewports;
if (io.ConfigFlags & ImGuiConfigFlags_EnableViewports)
ImGui_ImplDX11_InitPlatformInterface();
return true;
}

View File

@ -605,7 +605,8 @@ bool ImGui_ImplDX12_Init(ID3D12Device* device, int num_frames_in_flight, DXGI_FO
}
ImGuiIO& io = ImGui::GetIO();
if (io.ConfigFlags & ImGuiConfigFlags_MultiViewports)
io.ConfigFlags |= ImGuiConfigFlags_RendererHasViewports; // FIXME-VIEWPORT: Actually unfinshed..
if (io.ConfigFlags & ImGuiConfigFlags_EnableViewports)
ImGui_ImplDX12_InitPlatformInterface();
return true;

View File

@ -153,7 +153,8 @@ bool ImGui_ImplGlfw_Init(GLFWwindow* window, bool install_callbacks)
// Our mouse update function expect PlatformHandle to be filled for the main viewport
ImGuiViewport* main_viewport = ImGui::GetMainViewport();
main_viewport->PlatformHandle = (void*)g_Window;
if (io.ConfigFlags & ImGuiConfigFlags_MultiViewports)
io.ConfigFlags |= ImGuiConfigFlags_PlatformHasViewports;
if (io.ConfigFlags & ImGuiConfigFlags_EnableViewports)
ImGui_ImplGlfw_InitPlatformInterface();
g_ClientApi = GlfwClientApi_OpenGL;

View File

@ -45,7 +45,10 @@ bool ImGui_ImplOpenGL3_Init(const char* glsl_version)
strcpy(g_GlslVersion, glsl_version);
strcat(g_GlslVersion, "\n");
ImGui_ImplOpenGL3_InitPlatformInterface();
ImGuiIO& io = ImGui::GetIO();
io.ConfigFlags |= ImGuiConfigFlags_RendererHasViewports;
if (io.ConfigFlags & ImGuiConfigFlags_EnableViewports)
ImGui_ImplOpenGL3_InitPlatformInterface();
return true;
}

View File

@ -149,8 +149,11 @@ bool ImGui_ImplSDL2_Init(SDL_Window* window, void* sdl_gl_context)
// Our mouse update function expect PlatformHandle to be filled for the main viewport
ImGuiViewport* main_viewport = ImGui::GetMainViewport();
main_viewport->PlatformHandle = (void*)window;
if (io.ConfigFlags & ImGuiConfigFlags_MultiViewports)
#if SDL_VERSION_ATLEAST(2,0,4)
io.ConfigFlags |= ImGuiConfigFlags_PlatformHasViewports;
if (io.ConfigFlags & ImGuiConfigFlags_EnableViewports)
ImGui_ImplSDL2_InitPlatformInterface(window, sdl_gl_context);
#endif
return true;
}
@ -172,7 +175,6 @@ static void ImGui_ImplSDL2_UpdateMouse()
io.MousePos = ImVec2(-FLT_MAX, -FLT_MAX);
io.MousePosViewport = 0;
io.MouseHoveredViewport = 0;
io.ConfigFlags &= ~ImGuiConfigFlags_PlatformHasMouseHoveredViewport; // FIXME-VIEWPORT: We can't get this info properly with SDL, capture is messing up with SDL_WINDOW_MOUSE_FOCUS report and we'd need to handle _NoInputs
int mx, my;
Uint32 mouse_buttons = SDL_GetMouseState(&mx, &my);

View File

@ -703,7 +703,8 @@ bool ImGui_ImplVulkan_Init(ImGui_ImplVulkan_InitInfo* info, VkRenderPass rend
ImGuiIO& io = ImGui::GetIO();
ImGui_ImplVulkan_CreateDeviceObjects();
if (io.ConfigFlags & ImGuiConfigFlags_MultiViewports)
io.ConfigFlags |= ImGuiConfigFlags_RendererHasViewports;
if (io.ConfigFlags & ImGuiConfigFlags_EnableViewports)
ImGui_ImplVulkan_InitPlatformInterface();
return true;

View File

@ -71,7 +71,8 @@ bool ImGui_ImplWin32_Init(void* hwnd)
ImGuiViewport* main_viewport = ImGui::GetMainViewport();
main_viewport->PlatformHandle = (void*)g_hWnd;
if (io.ConfigFlags & ImGuiConfigFlags_MultiViewports)
io.ConfigFlags |= ImGuiConfigFlags_PlatformHasViewports;
if (io.ConfigFlags & ImGuiConfigFlags_EnableViewports)
ImGui_ImplWin32_InitPlatformInterface();
return true;

View File

@ -35,7 +35,7 @@ int main(int, char**)
// Setup ImGui binding
ImGui::CreateContext();
ImGuiIO& io = ImGui::GetIO(); (void)io;
io.ConfigFlags |= ImGuiConfigFlags_MultiViewports;
io.ConfigFlags |= ImGuiConfigFlags_EnableViewports;
//io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls
//io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; // Enable Gamepad Controls

View File

@ -37,7 +37,7 @@ int main(int, char**)
// Setup ImGui binding
ImGui::CreateContext();
ImGuiIO& io = ImGui::GetIO(); (void)io;
io.ConfigFlags |= ImGuiConfigFlags_MultiViewports;
io.ConfigFlags |= ImGuiConfigFlags_EnableViewports;
//io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls
ImGui_ImplSDL2_Init(window, gl_context);

View File

@ -344,7 +344,7 @@ int main(int, char**)
// Setup ImGui binding
ImGui::CreateContext();
ImGuiIO& io = ImGui::GetIO(); (void)io;
io.ConfigFlags |= ImGuiConfigFlags_MultiViewports;
io.ConfigFlags |= ImGuiConfigFlags_EnableViewports;
//io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls
ImGui_ImplVulkan_InitInfo init_info = {};

View File

@ -353,7 +353,7 @@ int main(int, char**)
// Setup ImGui binding
ImGui::CreateContext();
ImGuiIO& io = ImGui::GetIO(); (void)io;
io.ConfigFlags |= ImGuiConfigFlags_MultiViewports;
io.ConfigFlags |= ImGuiConfigFlags_EnableViewports;
//io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls
ImGui_ImplVulkan_InitInfo init_info = {};