├── .gitmodules ├── ci-build.cmd ├── ci-build.sh ├── .github ├── dependabot.yml └── workflows │ └── build.yml ├── README.md ├── version.json ├── ImGui.NET.SourceBuild.props ├── Directory.Build.props ├── ImGui.NET.SourceBuild.csproj └── .gitignore /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "cimgui"] 2 | path = cimgui 3 | url = https://github.com/cimgui/cimgui 4 | branch = docking_inter 5 | -------------------------------------------------------------------------------- /ci-build.cmd: -------------------------------------------------------------------------------- 1 | @setlocal 2 | @echo off 3 | set "RTYPE=%1" 4 | set "RARCH=%2" 5 | 6 | call %~dp0build-native.cmd %RTYPE% %RARCH% 7 | -------------------------------------------------------------------------------- /ci-build.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | scriptPath="`dirname \"$0\"`" 4 | RTYPE="${1}" 5 | 6 | if [[ "$OSTYPE" == "darwin"* ]]; then 7 | $scriptPath/build-native.sh ${RTYPE} -osx-architectures 'arm64;x86_64' 8 | else 9 | $scriptPath/build-native.sh ${RTYPE} 10 | fi 11 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: "github-actions" 4 | directory: "/" 5 | schedule: 6 | interval: "daily" 7 | groups: 8 | github-action-deps: 9 | applies-to: "version-updates" 10 | patterns: ["*"] 11 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # To Update to the latest cimgui version 2 | 3 | 1. git submodule update --init 4 | 5 | 2. git submodule update --remote 6 | 7 | 3. Update the version in version.json file 8 | 9 | 4. and then git commit + push. 10 | 11 | 12 | # To Trigger a release push a tag as shown below 13 | 14 | 2. git tag -a v1.4 -m "my version 1.4" 15 | 16 | 3. git push origin v1.4 17 | -------------------------------------------------------------------------------- /version.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/AArnott/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/version.schema.json", 3 | "version": "1.91.6", 4 | "publicReleaseRefSpec": [ 5 | "^refs/tags/v\\d+\\.\\d+" // we also release tags starting with vN.N 6 | ], 7 | "cloudBuild": { 8 | "buildNumber": { 9 | "enabled": false 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ImGui.NET.SourceBuild.props: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | <_ImGuiSourceBuildPkg>$(MSBuildThisFileDirectory)../src/ 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /Directory.Build.props: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Debug 5 | $(MSBuildThisFileDirectory) 6 | $(MSBuildThisFileDirectory)bin 7 | $(BinDir)\Packages\$(Configuration) 8 | 9 | 10 | 11 | Copyright 2022 (c) Eric Mellino. All rights reserved. 12 | Eric Mellino 13 | https://github.com/mellinoe/ImGui.NET-nativebuild 14 | 15 | 16 | 17 | true 18 | true 19 | $(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb 20 | 21 | 22 | 23 | all 24 | runtime; build; native; contentfiles; analyzers 25 | 26 | 27 | 28 | 29 | 3.5.119 30 | 31 | 32 | 33 | 34 | all 35 | runtime; build; native; contentfiles; analyzers 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /ImGui.NET.SourceBuild.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net7.0 5 | false 6 | false 7 | 8 | 9 | 10 | 11 | PreserveNewest 12 | src/ 13 | true 14 | 15 | 16 | PreserveNewest 17 | src/ 18 | true 19 | 20 | 21 | PreserveNewest 22 | src/imgui/ 23 | true 24 | 25 | 26 | PreserveNewest 27 | src/imgui/ 28 | true 29 | 30 | 31 | PreserveNewest 32 | src/imgui/ 33 | true 34 | 35 | 36 | PreserveNewest 37 | src/imgui/ 38 | true 39 | 40 | 41 | PreserveNewest 42 | src/imgui/ 43 | true 44 | 45 | 46 | PreserveNewest 47 | src/imgui/ 48 | true 49 | 50 | 51 | PreserveNewest 52 | src/imgui/ 53 | true 54 | 55 | 56 | PreserveNewest 57 | src/imgui/ 58 | true 59 | 60 | 61 | PreserveNewest 62 | src/imgui/ 63 | true 64 | 65 | 66 | PreserveNewest 67 | src/imgui/ 68 | true 69 | 70 | 71 | PreserveNewest 72 | src/imgui/ 73 | true 74 | 75 | 76 | true 77 | build 78 | 79 | 80 | 81 | 82 | Bundles the source code for dear imgui and its C binding layer (cimgui) for use within projects targeting webassembly. 83 | wasm webassembly emscripten imgui gui graphics imgui.net 84 | 85 | 86 | 87 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | syntax: glob 2 | 3 | #NuGet things 4 | project.lock.json 5 | 6 | ### VisualStudio ### 7 | 8 | # User-specific files 9 | *.suo 10 | *.user 11 | *.userosscache 12 | *.sln.docstates 13 | 14 | # Build results 15 | [Dd]ebug/ 16 | [Dd]ebugPublic/ 17 | [Rr]elease/ 18 | [Rr]eleases/ 19 | x64/ 20 | x86/ 21 | bld/ 22 | [Bb]in/ 23 | [Oo]bj/ 24 | msbuild.log 25 | 26 | # Visual Studio 2015 27 | .vs/ 28 | 29 | # Visual Studio 2015 Pre-CTP6 30 | *.sln.ide 31 | *.ide/ 32 | 33 | # MSTest test Results 34 | [Tt]est[Rr]esult*/ 35 | [Bb]uild[Ll]og.* 36 | 37 | #NUNIT 38 | *.VisualState.xml 39 | TestResult.xml 40 | 41 | # Build Results of an ATL Project 42 | [Dd]ebugPS/ 43 | [Rr]eleasePS/ 44 | dlldata.c 45 | 46 | *_i.c 47 | *_p.c 48 | *_i.h 49 | *.ilk 50 | *.meta 51 | *.obj 52 | *.pch 53 | *.pdb 54 | *.pgc 55 | *.pgd 56 | *.rsp 57 | *.sbr 58 | *.tlb 59 | *.tli 60 | *.tlh 61 | *.tmp 62 | *.tmp_proj 63 | *.log 64 | *.vspscc 65 | *.vssscc 66 | .builds 67 | *.pidb 68 | *.svclog 69 | *.scc 70 | 71 | # Chutzpah Test files 72 | _Chutzpah* 73 | 74 | # Visual C++ cache files 75 | ipch/ 76 | *.aps 77 | *.ncb 78 | *.opensdf 79 | *.sdf 80 | *.cachefile 81 | 82 | # Visual Studio profiler 83 | *.psess 84 | *.vsp 85 | *.vspx 86 | 87 | # TFS 2012 Local Workspace 88 | $tf/ 89 | 90 | # Guidance Automation Toolkit 91 | *.gpState 92 | 93 | # ReSharper is a .NET coding add-in 94 | _ReSharper*/ 95 | *.[Rr]e[Ss]harper 96 | *.DotSettings.user 97 | 98 | # JustCode is a .NET coding addin-in 99 | .JustCode 100 | 101 | # TeamCity is a build add-in 102 | _TeamCity* 103 | 104 | # DotCover is a Code Coverage Tool 105 | *.dotCover 106 | 107 | # NCrunch 108 | _NCrunch_* 109 | .*crunch*.local.xml 110 | 111 | # MightyMoose 112 | *.mm.* 113 | AutoTest.Net/ 114 | 115 | # Web workbench (sass) 116 | .sass-cache/ 117 | 118 | # Installshield output folder 119 | [Ee]xpress/ 120 | 121 | # DocProject is a documentation generator add-in 122 | DocProject/buildhelp/ 123 | DocProject/Help/*.HxT 124 | DocProject/Help/*.HxC 125 | DocProject/Help/*.hhc 126 | DocProject/Help/*.hhk 127 | DocProject/Help/*.hhp 128 | DocProject/Help/Html2 129 | DocProject/Help/html 130 | 131 | # Click-Once directory 132 | publish/ 133 | 134 | # Publish Web Output 135 | *.[Pp]ublish.xml 136 | *.azurePubxml 137 | *.pubxml 138 | *.publishproj 139 | 140 | # NuGet Packages 141 | *.nupkg 142 | **/packages/* 143 | 144 | # Windows Azure Build Output 145 | csx/ 146 | *.build.csdef 147 | 148 | # Windows Store app package directory 149 | AppPackages/ 150 | 151 | # Others 152 | sql/ 153 | *.Cache 154 | ClientBin/ 155 | [Ss]tyle[Cc]op.* 156 | ~$* 157 | *.dbmdl 158 | *.dbproj.schemaview 159 | *.pfx 160 | *.publishsettings 161 | node_modules/ 162 | *.metaproj 163 | *.metaproj.tmp 164 | 165 | # RIA/Silverlight projects 166 | Generated_Code/ 167 | 168 | # Backup & report files from converting an old project file 169 | # to a newer Visual Studio version. Backup files are not needed, 170 | # because we have git ;-) 171 | _UpgradeReport_Files/ 172 | Backup*/ 173 | UpgradeLog*.XML 174 | UpgradeLog*.htm 175 | 176 | # SQL Server files 177 | *.mdf 178 | *.ldf 179 | 180 | # Business Intelligence projects 181 | *.rdl.data 182 | *.bim.layout 183 | *.bim_*.settings 184 | 185 | # Microsoft Fakes 186 | FakesAssemblies/ 187 | 188 | ### MonoDevelop ### 189 | 190 | *.pidb 191 | *.userprefs 192 | 193 | ### Windows ### 194 | 195 | # Windows image file caches 196 | Thumbs.db 197 | ehthumbs.db 198 | 199 | # Folder config file 200 | Desktop.ini 201 | 202 | # Recycle Bin used on file shares 203 | $RECYCLE.BIN/ 204 | 205 | # Windows Installer files 206 | *.cab 207 | *.msi 208 | *.msm 209 | *.msp 210 | 211 | # Windows shortcuts 212 | *.lnk 213 | 214 | ### Linux ### 215 | 216 | *~ 217 | 218 | # KDE directory preferences 219 | .directory 220 | 221 | ### OSX ### 222 | 223 | .DS_Store 224 | .AppleDouble 225 | .LSOverride 226 | 227 | # Icon must end with two \r 228 | Icon 229 | 230 | # Thumbnails 231 | ._* 232 | 233 | # Files that might appear on external disk 234 | .Spotlight-V100 235 | .Trashes 236 | 237 | # Directories potentially created on remote AFP share 238 | .AppleDB 239 | .AppleDesktop 240 | Network Trash Folder 241 | Temporary Items 242 | .apdisk 243 | 244 | # vim temporary files 245 | [._]*.s[a-w][a-z] 246 | [._]s[a-w][a-z] 247 | *.un~ 248 | Session.vim 249 | .netrwhist 250 | *~ 251 | 252 | # VS Code junk 253 | .vscode 254 | 255 | # MSVC Stuff 256 | *.VC.db 257 | 258 | # Rider/Jetbrains IDEs 259 | .idea 260 | 261 | build/ -------------------------------------------------------------------------------- /.github/workflows/build.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | 3 | # Controls when the workflow will run 4 | on: 5 | create: 6 | 7 | # Triggers the workflow on push or pull request events but only for the master branch 8 | push: 9 | branches: [ master ] 10 | 11 | pull_request: 12 | branches: [ master ] 13 | 14 | # Allows you to run this workflow manually from the Actions tab 15 | workflow_dispatch: 16 | inputs: 17 | ReleaseType: 18 | description: 'Release or Debug' 19 | required: true 20 | default: 'Release' 21 | 22 | jobs: 23 | Build: 24 | runs-on: ${{ matrix.os }} 25 | strategy: 26 | matrix: 27 | include: 28 | - os: macos-latest 29 | - os: ubuntu-latest 30 | - os: windows-latest 31 | architecture: x64 32 | - os: windows-latest 33 | architecture: x86 34 | - os: windows-latest 35 | architecture: ARM64 36 | 37 | steps: 38 | - uses: actions/checkout@v4 39 | with: 40 | fetch-depth: 0 41 | submodules: recursive 42 | 43 | - name: Setup .NET 44 | if: matrix.os == 'windows-latest' 45 | uses: actions/setup-dotnet@v4 46 | with: 47 | dotnet-version: 8.0.x 48 | 49 | - name: Build source package 50 | if: matrix.os == 'windows-latest' && matrix.architecture == 'x64' 51 | run: dotnet pack -c Release ImGui.NET.SourceBuild.csproj 52 | shell: bash 53 | 54 | - name: Upload source package 55 | uses: actions/upload-artifact@v4 56 | if: matrix.os == 'windows-latest' && matrix.architecture == 'x64' 57 | with: 58 | name: win-x64-source 59 | path: bin\Packages\Release\*.nupkg 60 | 61 | - name: Publish untagged source package to MyGet 62 | if: matrix.os == 'windows-latest' && github.ref == 'refs/heads/master' && matrix.architecture == 'x64' 63 | run: dotnet nuget push bin\Packages\Release\*.nupkg -s https://www.myget.org/F/mellinoe/api/v3/index.json --api-key ${{secrets.MYGET_KEY}} 64 | # error can be fixed afterwards and job can be re-triggered 65 | continue-on-error: true 66 | 67 | - name: Publish tagged source package release to nuget.org 68 | if: matrix.os == 'windows-latest' && startsWith(github.ref, 'refs/tags/') && matrix.architecture == 'x64' 69 | run: dotnet nuget push bin\Packages\Release\*.nupkg -s https://api.nuget.org/v3/index.json --api-key ${{secrets.NUGET_KEY}} 70 | # error can be fixed afterwards and job can be re-triggered 71 | continue-on-error: true 72 | 73 | - name: Build ${{ github.event.inputs.ReleaseType || 'Release' }} 74 | run: | 75 | if [ "$RUNNER_OS" == "Windows" ]; then 76 | ./ci-build.cmd ${{ github.event.inputs.ReleaseType || 'Release' }} ${{ matrix.architecture }} 77 | else 78 | ./ci-build.sh ${{ github.event.inputs.ReleaseType || 'Release' }} 79 | fi 80 | shell: bash 81 | 82 | - name: Upload win-${{ matrix.architecture }} ${{ github.event.inputs.ReleaseType || 'Release' }} 83 | uses: actions/upload-artifact@v4 84 | if: matrix.os == 'windows-latest' 85 | with: 86 | name: win-${{ matrix.architecture }} 87 | path: cimgui\build\${{ matrix.architecture }}\${{ github.event.inputs.ReleaseType || 'Release' }}\* 88 | 89 | - name: Upload ${{ matrix.os }} ${{ github.event.inputs.ReleaseType || 'Release' }} 90 | uses: actions/upload-artifact@v4 91 | if: matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest' 92 | with: 93 | name: ${{ matrix.os }}-x64 94 | path: cimgui/build/${{ github.event.inputs.ReleaseType || 'Release' }}/* 95 | 96 | - name: Upload Json Files 97 | uses: actions/upload-artifact@v4 98 | if: matrix.os == 'windows-latest' && matrix.architecture == 'x64' 99 | with: 100 | name: JsonFiles 101 | path: cimgui\generator\output\*.json 102 | 103 | CreateReleaseOnTagCreate: 104 | runs-on: ubuntu-latest 105 | needs: [Build] 106 | if: startsWith(github.ref, 'refs/tags/') 107 | steps: 108 | - name: Download Artifacts 109 | uses: actions/download-artifact@v4 110 | 111 | - name: Rename win-x64 and win-x86 artifacts 112 | run: | 113 | mv win-x64/cimgui.dll win-x64/cimgui.win-x64.dll 114 | mv win-x86/cimgui.dll win-x86/cimgui.win-x86.dll 115 | mv win-ARM64/cimgui.dll win-ARM64/cimgui.win-arm64.dll 116 | 117 | - name: Release 118 | uses: softprops/action-gh-release@v2 119 | with: 120 | files: | 121 | win-x64/cimgui.win-x64.dll 122 | win-x86/cimgui.win-x86.dll 123 | win-ARM64/cimgui.win-arm64.dll 124 | JsonFiles/* 125 | ubuntu-latest-x64/cimgui.so 126 | macos-latest-x64/cimgui.dylib 127 | --------------------------------------------------------------------------------