{"action":"created","issue":{"url":"https://api.github.com/repos/ocornut/imgui/issues/1542","repository_url":"https://api.github.com/repos/ocornut/imgui","labels_url":"https://api.github.com/repos/ocornut/imgui/issues/1542/labels{/name}","comments_url":"https://api.github.com/repos/ocornut/imgui/issues/1542/comments","events_url":"https://api.github.com/repos/ocornut/imgui/issues/1542/events","html_url":"https://github.com/ocornut/imgui/issues/1542","id":286874781,"node_id":"MDU6SXNzdWUyODY4NzQ3ODE=","number":1542,"title":"Virtual viewports","user":{"login":"ocornut","id":8225057,"node_id":"MDQ6VXNlcjgyMjUwNTc=","avatar_url":"https://avatars2.githubusercontent.com/u/8225057?v=4","gravatar_id":"","url":"https://api.github.com/users/ocornut","html_url":"https://github.com/ocornut","followers_url":"https://api.github.com/users/ocornut/followers","following_url":"https://api.github.com/users/ocornut/following{/other_user}","gists_url":"https://api.github.com/users/ocornut/gists{/gist_id}","starred_url":"https://api.github.com/users/ocornut/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ocornut/subscriptions","organizations_url":"https://api.github.com/users/ocornut/orgs","repos_url":"https://api.github.com/users/ocornut/repos","events_url":"https://api.github.com/users/ocornut/events{/privacy}","received_events_url":"https://api.github.com/users/ocornut/received_events","type":"User","site_admin":false},"labels":[{"id":356395707,"node_id":"MDU6TGFiZWwzNTYzOTU3MDc=","url":"https://api.github.com/repos/ocornut/imgui/labels/backend/binding","name":"backend/binding","color":"bfdbff","default":false},{"id":861813213,"node_id":"MDU6TGFiZWw4NjE4MTMyMTM=","url":"https://api.github.com/repos/ocornut/imgui/labels/dpi","name":"dpi","color":"efce9b","default":false},{"id":115608421,"node_id":"MDU6TGFiZWwxMTU2MDg0MjE=","url":"https://api.github.com/repos/ocornut/imgui/labels/enhancement","name":"enhancement","color":"84b6eb","default":true},{"id":809120447,"node_id":"MDU6TGFiZWw4MDkxMjA0NDc=","url":"https://api.github.com/repos/ocornut/imgui/labels/multi%20contexts","name":"multi contexts","color":"fbca04","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/ocornut/imgui/milestones/6","html_url":"https://github.com/ocornut/imgui/milestone/6","labels_url":"https://api.github.com/repos/ocornut/imgui/milestones/6/labels","id":3151385,"node_id":"MDk6TWlsZXN0b25lMzE1MTM4NQ==","number":6,"title":"v1.70","description":"","creator":{"login":"ocornut","id":8225057,"node_id":"MDQ6VXNlcjgyMjUwNTc=","avatar_url":"https://avatars2.githubusercontent.com/u/8225057?v=4","gravatar_id":"","url":"https://api.github.com/users/ocornut","html_url":"https://github.com/ocornut","followers_url":"https://api.github.com/users/ocornut/followers","following_url":"https://api.github.com/users/ocornut/following{/other_user}","gists_url":"https://api.github.com/users/ocornut/gists{/gist_id}","starred_url":"https://api.github.com/users/ocornut/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ocornut/subscriptions","organizations_url":"https://api.github.com/users/ocornut/orgs","repos_url":"https://api.github.com/users/ocornut/repos","events_url":"https://api.github.com/users/ocornut/events{/privacy}","received_events_url":"https://api.github.com/users/ocornut/received_events","type":"User","site_admin":false},"open_issues":2,"closed_issues":0,"state":"open","created_at":"2018-02-28T18:19:39Z","updated_at":"2018-02-28T18:20:09Z","due_on":null,"closed_at":null},"comments":60,"created_at":"2018-01-08T20:30:29Z","updated_at":"2018-09-17T10:20:39Z","closed_at":null,"author_association":"OWNER","body":"Creating this thread to discuss and tag commits related to an upcoming feature. \r\n\r\nIt somehow relates to Docking (#351) in the sense that current work on docking created growing expectations to get this working. But it's also mostly separate code, and for various reasons I think this will probably go in master before Docking. It will need testing and feedback.\r\n\r\nIf you follow the Docking thread you may have seen this already:\r\n![imgui_docking_and_viewports](https://user-images.githubusercontent.com/8225057/34421642-d4308788-ec10-11e7-8203-f9ae38346d08.gif)\r\n\r\nAnd more recently I improved transition and it's somewhat magical:\r\n![imgui_platform_20180108](https://user-images.githubusercontent.com/8225057/34685569-16309c5e-f4a9-11e7-9147-3dc23e083437.gif)\r\n\r\nWhat happens here essentially if that the code creates borderless (undecorated) windows with a dedicated DirectX/OpenGL context on the fly, create imgui viewport to cover this os window, and move the window there..\r\n\r\nBasically it consist in two parts:\r\n- dear imgui will support a new concept called \"viewport\". A single imgui context can drive multiple virtualized regions, as shown in those GIF. Using a single context makes sharing state natural (things like settings, tree nodes state or cross windows drag and drop). There are still various problems to solve related to persistence, mouse position, etc. but overall it's not a crazily complex feature.\r\n\r\n- To support this feature the backend code (imgui_impl_xxxx files) needs to be reworked obviously. It puts additional complexity on that code and not all engine will support it. That part needs to be both optional and as out of the way possible. I suspect we will need to iterate on that a lot, both to get the functionalities right, and because I worry a lot about the imgui first-time user experience and impression, and the additional complexity is very undesirable there. \r\nI suspect I may end up re-factoring a lot of the examples/ code.\r\n\r\nIf you are interested I will be looking for feedback and early adopters, hopefully starting in January some of this can be in a branch.\r\n\r\n  "},"comment":{"url":"https://api.github.com/repos/ocornut/imgui/issues/comments/421957151","html_url":"https://github.com/ocornut/imgui/issues/1542#issuecomment-421957151","issue_url":"https://api.github.com/repos/ocornut/imgui/issues/1542","id":421957151,"node_id":"MDEyOklzc3VlQ29tbWVudDQyMTk1NzE1MQ==","user":{"login":"morgoth990","id":40690017,"node_id":"MDQ6VXNlcjQwNjkwMDE3","avatar_url":"https://avatars2.githubusercontent.com/u/40690017?v=4","gravatar_id":"","url":"https://api.github.com/users/morgoth990","html_url":"https://github.com/morgoth990","followers_url":"https://api.github.com/users/morgoth990/followers","following_url":"https://api.github.com/users/morgoth990/following{/other_user}","gists_url":"https://api.github.com/users/morgoth990/gists{/gist_id}","starred_url":"https://api.github.com/users/morgoth990/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/morgoth990/subscriptions","organizations_url":"https://api.github.com/users/morgoth990/orgs","repos_url":"https://api.github.com/users/morgoth990/repos","events_url":"https://api.github.com/users/morgoth990/events{/privacy}","received_events_url":"https://api.github.com/users/morgoth990/received_events","type":"User","site_admin":false},"created_at":"2018-09-17T10:20:39Z","updated_at":"2018-09-17T10:20:39Z","author_association":"NONE","body":"> > My engine supports multiple windows, is this feature compatible with more than one window?\r\n> > In the code I see reference about a main viewport and I'm not sure if i can create and link a viewport when I create a new window\r\n> \r\n> It's missing at the moment but shouldn't be too hard to hard this feature. I suppose you'd need to create a viewport flagged as a \"hosting viewport\" where windows can be moved into it.\r\n\r\nWith few changes in ImGui.cpp is working very well (small changes to manage viewports with null window), now I'm waiting for the docking update :D"}}
{"actor":{"display_login":"morgoth990"}}