{"action":"created","issue":{"url":"https://api.github.com/repos/ocornut/imgui/issues/259","labels_url":"https://api.github.com/repos/ocornut/imgui/issues/259/labels{/name}","comments_url":"https://api.github.com/repos/ocornut/imgui/issues/259/comments","events_url":"https://api.github.com/repos/ocornut/imgui/issues/259/events","html_url":"https://github.com/ocornut/imgui/issues/259","id":92922025,"number":259,"title":"August 10, and ideas","user":{"login":"ocornut","id":8225057,"avatar_url":"https://avatars.githubusercontent.com/u/8225057?v=3","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":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-07-03T18:52:20Z","updated_at":"2015-07-04T21:28:13Z","closed_at":null,"body":"August 10 is the date last year I put ImGui 1.0 online, following a month of preparation!\r\nI will need to step back a little from ImGui and I thought the first year anniversary would be a good date for that.\r\n\r\nI really enjoy working on it and I have hundreds of ideas of ways to move it forward. Then reality hits: I've been slowly consuming my savings putting time to work on this and other free projects. At this point in my life I really need to try to focus on finding something I can make a living of and this means I need to put some things aside, free up time and reduce my already charged cognitive load. Sustainable game development is enough of a lottery that I can't afford to make it harder for me.\r\n\r\nMy hope was that some of the larger companies using ImGui would be able to contribute to the Patreon up to a point where I could justify spending a few days a week working on it, but it is probably not going to be the case. I am very very grateful of everybody already helping with the Patreon. It wouldn't be reasonable to expect more and I certainly don't expect individuals to add more to the pot.\r\n\r\nSo while I won't abandon ImGui and I know myself well enough to know I'll always be doing things on it, I need to set a date to make a mental transition of softening my involvement. So instead of waking up thinking \"shit I need to fix this bug or add this feature\" I'll be more relaxed about it. I may come back to focus on it occasionally depending on my situation.\r\n\r\nOmar\r\n\r\nDevelopment wise, some upcoming themes I have in my mind:\r\n\r\n- Finish the anti-aliased branch.\r\n\r\n- Which means re-factoring the rendering data to be more future-proof. Switching to indexed rendering already broke rendering in the AA branch so it is the perfect time to do that transition. We should be able in the future to provide high-level information on windows so that virtual canvas, networked output is easier to work with. Also consider the possible transition to use a dynamic font atlas, perhaps the user would get e.g. a texture dirty-rectangle. \r\nAlso the current columns implementation is currently performance-poor because it keeps pushing primitives in submission order with different scissoring settings, whereas each column should append to its own list and they are merged-flattened at the end of the column set. One advantage of switching to indexed rendering is that it is now much easier and cheaper to do that. I want to think that feature through just in case it has an effect on the rendering data (it might not) so all the breaking changes can be done once only.\r\n\r\n- Add a framework for testing. If more people have to work on ImGui testing needs to be more thorough. I don't know what form it would take yet. \r\n\r\n- Add a framework for generating screenshots/animations for given pieces of code. This is probably going to be done along with the \"testing\" framework. I would like the ImGui documentation to be a very visual, well organized listing with C++ code on one side, screenshot (or animated GIF) on the other side and tags + commentary. I think this will easily convey a lot of ideas and tips about ways to use ImGui.\r\n\r\n- Various improvements with font (#182 #220 #232 #242 are all related, the key is figuring a way to do the initialisation that is flexible enough). And considering making the texture a dynamic atlas (this later part is much less a priority).\r\n\r\n- Allow all \"value - label\" widgets to be displayable in a variety of combination (e.g. \"label widget\", \"label\\nwidget\" with variety of expressive layout options and alignments. Devise better methods to express and manipulate the size and alignment of one or multiple widgets. Currently the PushItemWidth(...); Widget(); PopItemWidth() idiom is way too verbose. Enable simpler and better horizontal layout.\r\n\r\n- Resizing separators, a way to separate e.g. two child windows and resize them. That would be a more flexible generalization of the concept used by columns. \r\n\r\n- Better columns, sizing options, columns header, scrolling with non-scrolling headers, sorting, re-ordering. It's all sort of feasible but should be natural first-class citizen.\r\n\r\n- Better methods to handle simple alignment issues. The checkbox in the demo window with \"No title bar\" \"No resize\" etc. is a pattern that is hard to solve perfectly in one pass with the current available features. The approach of ImGui for some problems like this one is often \"who cares just add a constant\" but it'd be nice to have extra layout features to allow for it more elegantly.\r\n\r\n- Shortcuts for menus and a general shortcut system.\r\n\r\n- Keyboard navigation and usage.\r\n\r\n- A generic iterator/data access scheme so that API like Combo or ListBox can be used with sparse list of value (currently Combo assume linear sequence so the user needs an extra level of indirection if their value are sparse).\r\n\r\n- And the visual redesign..\r\n\r\nI don't know when those things will be done. Probably not by August! if you feel like helping with something let me know!"},"comment":{"url":"https://api.github.com/repos/ocornut/imgui/issues/comments/118556383","html_url":"https://github.com/ocornut/imgui/issues/259#issuecomment-118556383","issue_url":"https://api.github.com/repos/ocornut/imgui/issues/259","id":118556383,"user":{"login":"Pagghiu","id":5406873,"avatar_url":"https://avatars.githubusercontent.com/u/5406873?v=3","gravatar_id":"","url":"https://api.github.com/users/Pagghiu","html_url":"https://github.com/Pagghiu","followers_url":"https://api.github.com/users/Pagghiu/followers","following_url":"https://api.github.com/users/Pagghiu/following{/other_user}","gists_url":"https://api.github.com/users/Pagghiu/gists{/gist_id}","starred_url":"https://api.github.com/users/Pagghiu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Pagghiu/subscriptions","organizations_url":"https://api.github.com/users/Pagghiu/orgs","repos_url":"https://api.github.com/users/Pagghiu/repos","events_url":"https://api.github.com/users/Pagghiu/events{/privacy}","received_events_url":"https://api.github.com/users/Pagghiu/received_events","type":"User","site_admin":false},"created_at":"2015-07-04T21:28:13Z","updated_at":"2015-07-04T21:28:13Z","body":"Hi Omar,\r\n\r\nI have been reading this post and I want to comment both the first and the second part.\r\nRegarding the first part it's clear that the time you can spend on improving the library is proportional to the money you can make with it.\r\nHave you already thought of changing the way you're \"marketing\" the library?\r\nLet me try to explain what I mean.\r\n\r\n0) Imgui needs a website that should at least contain latest up to date downloads, donations links, cool shots/video, roadmaps, who's using it etc.\r\n\r\n1) You may be under-estimating the power of this library, it's not just for debug visualisation or game/tools/editor UI. I think what I was able to achieve in a few months of usage/customisation is really cool. Have you seen my latest shots at #123 ? Probably a video instead of some shots would make it more clear.\r\nI see IMGUI as a general cross platform UI library. The current showcase example is cool, but spending some time in building some \"real world\" examples would open a whole new world.\r\n\r\n2) Put some effort on making the demo/shots of the library more visually appealing. \r\nI'm sure this will increase usage A LOT, and more popularity, more possibility of money making for you.\r\n\r\n3) Ask for money on specific features. Less Patreon and more Kickstarter. Something along the line of:\r\n\"Feature proposal XYZ: Create the TextEditCheckboxMultiline Widget\"  - Target: 500$ \r\nWhen target is reached, you will implement it in 1/2/3/whatever months timeframe was stated in the proposal.\r\nA big company that absolutely needs feature XYZ will be a \"sponsor\" for it, more or less like LuaJIT (see http://wiki.luajit.org/Open-Sponsorships )\r\n\r\n4) Spend some time to integrate and keep up to speed some cool forks I've seen around here to expand functionality (the remoteimgui is really cool)\r\n\r\n5) Make some ready to use samples that show integration with other UI frameworks (I've personally done it with MFC on win / Cocoa on mac), without requiring strange \"game programmer\" libraries like glfw etc. \r\n\r\n6) Create wrappers for other languages like C# so that people can use it in Unity or other cool engines from webgl/javascript via emscripten!.\r\n\r\n7) Ask for help! Try to write down a proper structured roadmap and/or thing you would like to do in a way that a contributor could try to send a meaningful pull request to the project.\r\n\r\nRegarding the technical part I think the priorities should be\r\n\r\n- Font handling: this will make the ui extremely more appealing and flexible\r\n- Visual Redesign: this is important to show the power of imgui. \r\nJust adding some colors, with icon fonts and using a proper text font makes everything so much cool :)\r\n- Widget Alignment: we've discussed this a few times even if I've always been able to place controls where I want with some more ad hoc verbose code.\r\n- Everything else in any order."}}