-
Notifications
You must be signed in to change notification settings - Fork 55
Release notes
Sammy Fatnassi edited this page Dec 8, 2024
·
14 revisions
- Support of additional texture formats
- Handle Linear/sRGB vertex color format
- Add logging information to NetImgui Server Application
- Add new Dear ImGui multi windows support (docking branch)
Commands to assign custom backgroundsAdd compression to data between Client and ServerSupport of monitor DPIAdd copy/paste supportSupport for connection takeover
(2024/12/08)
-
API Changes
- None
-
Backend change
- Networking protocol has been reworked
- If you are using our own networking layer, you will need to support changes made to 'DataReceive' and 'DataSend' and the addition of 'DataReceivePending'
- This was done to drastically improve performances by using non-blocking sockets
- For more details, please look at the changes done to NetImgui_NetworkWin32.cpp or NetImgui_NetworkUE4.cpp
- Note: The Posix network code has not been updated to new protocol yet, only Windows and UE4 have been done
-
Various small changes and fixes
- Tested Dear ImGui versions up to 1.91.5 and updated the NetImgui Server to it (docking branch).
(2024/05/26)
-
API Changes
- None
-
Added Connection 'Take Over' support
- When a NetImgui Client is already connected to a NetImgui Server, user of a second instance of a NetImgui Server now have the option of Taking over the connection.
- This is useful when the Client Config on a NetImgui Server is set to Auto Connect and a user on a second PC wish to still connect to the client.
- Users can enable the option Block TakerOver in their Client Config to prevent this possibility.
-
Various small changes and fixes
- Tested Dear ImGui versions up to 1.90.6 and updated the NetImgui Server to it (docking branch).
(2023/12/30)
-
API Changes
-
ConnectToApp() and ConnectFromApp() functions now accept a callback to be used by the NetImgui Server when wanting to update the font to a specific DPI scale.
- Can be left untouched, with null used by default.
- Without a callback, we apply the text scaling to ImGuiIO.FontGlobalScale instead of requesting the generation of a new font with increased pixel size.
- Using ImGuiIO.FontGlobalScale gives a blurier text result than recreating the font with the exact DPI needed.
- See SampleFontDPI for more info.
-
SendDataTexture() now support a new texture format kTexFmtCustom.
- It requires that the dataSize parameter is specified since we can't deduce it anymore (but not used for other formats)
- It allows user to send a texture command with custom data that also needs to be added to NetImguiServer codebase.
- This could be used for movie streaming, etc...
- See SampleTexture for more info.
-
ConnectToApp() and ConnectFromApp() functions now accept a callback to be used by the NetImgui Server when wanting to update the font to a specific DPI scale.
- Upgraded Dear ImGui support to 1.90
-
Added monitor DPI support
- The Server now scale the text up on a high resolution monitor, so it can still be read
- The Server font atlas is regenerated with a higher pixel size to match the resolution
- The Client connected will be asked to regenerate their font atlas if they provided a callback when connecting
- When this callback is received, the client codebase should regenerate the font atlas using the provided scale
- When no callback has been assigned, the client automatically relies on ImGuiIO.FontGlobalScale when drawing (blurier results)
- See SampleFontDPI for more info.
-
Added Clipboard support
- Can now seamlessly use text clipboard between Client and Server!
- Text copied on the Server PC is now sent over to the NetImgui Clients and can be pasted inside their Dear ImGui content
- Text copied inside the Client's Dear ImGui content is now received by the Server PC and can be used on it
-
Shared Client configs
- When adding a Client configuration on the NetImgui Server application, the property Shared can now be specified
- When enabled, it will save the config in a User Directory instead of the current Working Directory
- This means that user can have NetImgui Server applications in various locations, but they can all still share the same Client Configs.
- Note: Requires that the function HAL_GetUserSettingFolder() is implemented in the NetImgui Server codebase. It has been done for Windows.
-
Various small changes and fixes
- When the NetImgui Server config file netImgui.cfg is detected readonly, now tries to create a second one. This should help if user submit the default config file to perforce but still want to add new Clients.
- Quickly typed text was dropping characters when received by Client
- DirectX textures error when quickly recreating them
(2023/05/04)
-
API Changes
- None
- Upgraded Dear ImGui support to 1.89.5
- Various small changes and fixes
(2022/07/18)
-
API Changes
- None
-
Dear ImGui 1.87 input event support
- Input handling refactored to handle new Dear ImGui input event system (thanks to @lemantisee)
- Added gamepad support
-
Compatibility tests
- Now compile simple compatibility app for each Dear ImGui version supported
- Allows to make sure the NetImgui Server works properly against any Dear ImGui version
-
Other Changes
- 32bits support bugs fix in client code
- NetImgui server popup now centered on main window
- Some OpenGL fixes
- Visual Studio 2022 LLVM support fix
(2022/01/31)
-
API Changes
- None
-
Bug fixes
- NetImgui Server memory leak fix
(2022/01/30)
-
API Changes
- Removed the
bWait
parameter fromShutdown()
- Always wait for Shutdown completion before returning now
- This prevents multithread data release issues
- Added a
NETIMGUI_API
define prefix to functions exported inNetImgui_Api.h
- Similar to
IMGUI_API
, allows library user to control dll import/export - Takes the same value as
IMGUI_API
by default
- Similar to
- Removed the
-
Bug fixes
- Compression feature causing some out of sync issue with NetImgui Server
- 32bits index support crash
(2022/01/10)
-
API Changes
- Added
SetCompressionMode(...)
/GetCompressionMode()
, allow library user to manage the data compression feature- By default, Client relies on Server Setting
- Added
-
Data Compressions Support
- Drawing data generated by the Client can now be compressed before being sent to Server
- Greatly reduce the bandwidth between Client/Server at a negligible cost on the Client
- Using Delta Compression. The draw data usually vary little from previous frame. Sending only the changed bytes produce great results at low overhead
- Highly dynamic UI content lower improvements
- A new sample (SampleCompression) demonstrate the use of data compression and its metrics
- At 30 Fps, data rate send from client goes from ~ 3400 KB/s to ~ 22 KB/s (~ 160x improvement !)
- Since it depends on static content, moving around a Window reduce the benefits
- Drawing data generated by the Client can now be compressed before being sent to Server
-
Other Changes
- Added OpenGL3 support to NetImgui Server
- Still DirectX11 by default
- OpenGL3 support helps with the Server Application port to non Windows OS
- To enable, set
HAL_API_PLATFORM_GLFW_GL3
define to 1 andHAL_API_PLATFORM_WIN32_DX11
to 0
- Added support for Visual Studio 2021
- Support up to Dear ImGui 1.86 has been tested
- Added OpenGL3 support to NetImgui Server
(2021/08/09)
-
API Changes
- None
-
Other Changes
- Mostly some small bug fixes
- Fixed issue with keyboard input
- Fixed 16/32bits index handling (NetImgui Server app now handle both case without recompiling)
(2021/05/30)
-
API Changes
- None
-
Other Changes
- Mostly some small bug fixes
- Reduced NetImgui server CPU/GPU usage
- Better handling of NetImgui server's window move between 4K and lower resolution monitors
(2021/03/13)
-
API Changes
- Added
SetBackground(...)
letting user configure the client window background appearance- The new sample SampleBackground demonstrate its usage.
- Removed support of empty API functions when
NETIMGUI_ENABLED
is false- Keeps NetImgui client code clutter to minimum.
- Added
-
New
- Auto interception of Dear ImGui
ImGui::NewFrame()
/ImGui::Render()
- Using Dear ImGui 1.81's Callbacks support, replacing theses Dear ImGui functions call with
NetImgui::NewFrame()
/NetImgui::EndFrame()
can now be avoided - This means less changes to existing codebase wanting to use NetImgui, only requiring a single call to :
Startup
Shutdown
-
ConnectToApp
orConnectFromApp
- However, calling directly
NetImgui::NewFrame()
/NetImgui::EndFrame()
has the additional benefit of being able to skip drawing when not needed
- Using Dear ImGui 1.81's Callbacks support, replacing theses Dear ImGui functions call with
- Auto interception of Dear ImGui
(2021/01/22)
-
API Changes
- Removed parameter from
NetImGui::ConnectToApp() / NetImGui::::ConnectFromApp()
to clone the current context. NetImgui now only uses the Dear ImGui Context that was active when requesting a connection, without internally using other contexts.
- Removed parameter from
-
New
- Complete refactor of the NetImguiServer application.
- Now relying on Dear ImGui's backend for the renderer and OS support.
- Other platform's specific functions have all been cleanly abstracted.
- This means that porting the server application to other platform should be straightforward.
- Copy/paste from Server to Client support. From Client to Server is still up to the user engine.
- Complete refactor of the NetImguiServer application UI.
- Now relying on 'Dear ImGui' docking branch to draw the user interface.
- Can display multiple connected client's windows at the same time, and they can be docked / moved around as user sees fit.
- Can now specify a display refresh rate for the connected clients.
- Single header include support.
- For user wanting to minimize changes to their project, it is now possible to only include
NetImgui_Api.h
after declaring the defineNETIMGUI_IMPLEMENTATION
, and all needed source files will also be added for compilation.
- For user wanting to minimize changes to their project, it is now possible to only include
- Complete refactor of the NetImguiServer application.
(2020/08/22)
- API Changes
-
NetImGui::NewFrame()
/NetImGui::EndFrame()
should always be used, even when disconnected -
NetImGui::ConnectToApp() / NetImGui::::ConnectFromApp()
take a new parameter, telling netImgui to continue using the same context or use a duplicate -
NetImgui::Connect()
replaced byNetImgui::ConnectToApp()
/NetImGui::ConnectFromApp()
-
NetImgui::IsRemoteDraw()
renamed toNetImgui::IsDrawingRemote()
-
NetImgui::IsDrawing()
added -
NetImgui::IsConnectionPending()
added -
NetImgui::GetDrawData()
added -
NetImgui::GetRemoteContext()
removed - New
- Support for connection initiated from netImgui server application
- GUI and save file support for Client configurations
- Improved samples
- Optional commandline parameter to specify Client's address for connection on netImgui Server launch
- Launching a second netImgui Server forward commandline option to already running instance
- netImgui Server application accepts Client's address request from a Windows 'named pipe'
- Bugfix
- Issue of text edition not recognizing special key strokes (navigation, delete, ...)
(2020/07/02)
- Added ImGui 1.77 support
(2020/06/23)
- Few fixes
- Added support to Posix sockets (Unix/Mac/Android support)
- Added texture format A8
(2020/06/13)
- Initial Release
- netImgui server application
- netImgui client code (for integration into external codebase)