You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
**1.***(NetImgui Server)***Capture user's inputs with mouse/keyboard**
46
-
47
45
**2.***(NetImgui Server)***Send the Inputs to client and request a draw update**
48
-
49
46
**3.***(NetImgui Client)***Draw the *Dear ImGui* content normally** (without need to display on client)
50
-
51
47
**4.***(NetImgui Client)***Send the drawing results to server**
52
-
53
48
**5.***(NetImgui Server)***Receives the drawing result and display them**
54
-
55
49
**6. Go back to 1**
56
50
57
51
#### Note
@@ -71,26 +65,24 @@ The NetImgui Server application currently compiles under Windows and Mac, but fe
71
65
- Replace call to `ImGui::NewFrame()` with `NetImgui::NewFrame()`.
72
66
- Replace call to `ImGui::Render()` / `ImGui::EndFrame()` with `NetImgui::EndFrame()`.
73
67
4. Start the **NetImgui** server application and connect your application to it.
74
-
75
68
-*More integration details can be found on the [Wiki](https://github.com/sammyfreg/netImgui/wiki"Wiki").*
76
69
-*Multiple samples are also provided in the depot, providing additional insights.*
77
70
78
71
#### Note
79
72
- Connection between **NetImgui Server** and a **netImGui Client** can be achieved in 4 different ways.
80
-
-**Server waits for connection and** :
81
-
- (A) Client calls `ConnectToApp()` with the Server address.
82
-
-**Client calls `ConnectFromApp()` then waits for connection and** :
83
-
- (B) Server configure the Client's address and connect to it.
84
-
- (C) Server is launched with the Client's address in the commandline.
85
-
- (D) Server receives a Client's address from another application, through [Windows named pipe](https://docs.microsoft.com/en-us/windows/win32/ipc/named-pipes"Windows named pipe") : \\.\pipe\netImgui'.
73
+
-**Server waits for connection and** :
74
+
- (1) Client calls `ConnectToApp()` with the Server address.
75
+
-**Client calls `ConnectFromApp()` then waits for connection and** :
76
+
- (2) Server configure the Client's address and connect to it.
77
+
- (3) Server is launched with the Client's address in the commandline.
78
+
- (4) Server receives a Client's address from another application, through [Windows named pipe](https://docs.microsoft.com/en-us/windows/win32/ipc/named-pipes"Windows named pipe") : \\.\pipe\netImgui'.
86
79
87
80
88
-
-**Advanced:** Different **Dear ImGui** content can be displayed locally and remotely at the same time. Look at *SampleDualUI* for more information.
89
-
90
-
-`NetImgui::IsConnected()` and `NetImgui::IsDrawingRemote()` can be used during Dear ImGui drawing, helping to make selective decisions on the content to draw based on where it will be displayed.
81
+
-**Advanced:** Different **Dear ImGui** content can be displayed locally and remotely at the same time.
82
+
-`NetImgui::IsConnected()` and `NetImgui::IsDrawingRemote()` can be used during Dear ImGui drawing, helping to make selective decisions on the debug ui content based on this.
91
83
92
84
#### Dear Imgui versions
93
-
- Tested against **Dear ImGui** versions **1.71** to **1.90**.
85
+
- Tested against **Dear ImGui** versions **1.71** to **1.92.5**.
94
86
-*Note*: Should support other versions without too much difficulties.
95
87
-*Note*: See **Build\GenerateCompatibilityTest.bat** for an exact list of tested versions.
96
88
@@ -112,40 +104,51 @@ Related projects making use of **NetImgui**.
112
104
-~~Support of monitor DPI~~
113
105
-~~Support for connection takeover~~
114
106
115
-
### Version 1.12.1
116
-
(2024/12/10)
117
-
-**API Changes**
118
-
- None
119
-
-**Various small changes and fixes**
120
-
- Fixed a Copy/paste and a Disconnect crash
121
-
122
-
### Version 1.12
123
-
(2024/12/08)
107
+
### Version 1.13
108
+
109
+
(2026/01/05)
124
110
-**API Changes**
125
-
- None
111
+
- Added support of new *ImTextureRef* parameter to **NetImgui::SetBackground(...)**
112
+
-*NetImgui::eTexFormat* enum entries shuffled
113
+
-*'FontCreation callback'* parameter in **ConnectToApp(...)** and **ConnectFromApp(...)** now ignored in **Dear ImGui 1.92+**
114
+
- No need to regenerate texture atlas on DPI change anymore, making the callback pointless
115
+
- Callback is left as a parameter for programs using **Dear ImGui** versions from before 1.92
116
+
- If you did implement the callback, the code can be safely removed (on version 1.92+)
117
+
- Disabled Custom Texture format
118
+
- Allows transmitting data for user managed custom texture format but has not been made functional with updated texture system yet
126
119
-**Backend change**
127
-
- Networking protocol has been reworked
128
-
- If you are using our own networking layer, you will need to support changes made to *'DataReceive'* and *'DataSend'* and the addition of *'DataReceivePending'*
129
-
- This was done to drastically improve performances by using non-blocking sockets
130
-
- For more details, please look at the changes done to *NetImgui_NetworkWin32.cpp* or *NetImgui_NetworkUE4.cpp*
131
-
-***Note:** The Posix network code has not been updated to new protocol yet, only Windows and UE4 have been done*
132
-
-**Various small changes and fixes**
133
-
- Tested **Dear ImGui** versions up to 1.91.5 and updated the **NetImgui Server** to it (docking branch).
134
-
120
+
- Upgraded to [Dear ImGui 1.92.5](https://github.com/ocornut/imgui/releases/tag/v1.92.5)
121
+
- Added support for new Dear ImGui 1.92+ font atlas
122
+
- Font texture atlas contains needed glyphs only, doesn't pre-render all glyphs at each font point
123
+
- This means much a smaller texture
124
+
- Improved handling of monitor DPI
125
+
- Transparent to library users
126
+
- Added support for Dear ImGui managed textures
127
+
- Automatic hookup into textures creations/update/destruction
128
+
- Partial texture region update support
129
+
-**Samples**
130
+
- Reworked *'Sample Textures'* to demonstrate...
131
+
- Creating, updating and using **Dear ImGui** managed textures
132
+
- **NetImgui** automatically forwarding all of the managed textures operations to the **NetImgui Server**
133
+
- The ability of still using your own textures objects
134
+
- These need to be manually send to the **NetImgui Server**
135
+
- Removed *Sample DPI*
136
+
- Uneeded now that DPI is automatically handle without user needing to implement anything
137
+
- Removed *Sample DualUI*
138
+
- Can no longuer re-use same remote Imgui draw data to re-use for local display so remove it
139
+
-**Misc**
140
+
- Updated Sharpmake version to 0.92
141
+
- Added *Visual Studio 2026* support
142
+
- Used by Server and Samples solutions generation (not needed by library users of **NetImgui's** client code)
It seems that various gaming studios are making use of this code. I would enjoy hearing back from library users, for general comments and feedbacks. Always interested in learning of people usercase. I can be reached through my [**GitHub profile**](https://github.com/sammyfreg) (email or twitter) or creating a new entry in [**GitHub Issue**](https://github.com/sammyfreg/netImgui/issues"GitHub Issues").
140
-
141
147
# Credits
142
148
Sincere thanks to [Omar Cornut](https://github.com/ocornut/imgui/commits?author=ocornut) for the incredible work on **[Dear ImGui](https://github.com/ocornut/imgui)**.
143
-
144
149
Support of image formats via [**stb_image.h**](https://github.com/nothings/stb/blob/master/stb_image.h) by Sean Barrett (public domain).
145
-
146
150
Support of Solutions generation via [**Sharpmake**](https://github.com/ubisoft/Sharpmake) by Ubisoft (public domain).
147
-
148
151
Support of Posix sockets thanks to [Aaron Lieberman](https://github.com/AaronLieberman).
149
-
150
152
Support of json save file via [**nlohmann json**](https://github.com/nlohmann/json)
0 commit comments