diff --git a/examples/example_sdl2_surface/Makefile b/examples/example_sdl2_surface/Makefile
index c144bd6e..7778ae9f 100644
--- a/examples/example_sdl2_surface/Makefile
+++ b/examples/example_sdl2_surface/Makefile
@@ -8,7 +8,6 @@
# MSYS2: pacman -S mingw-w64-i686-SDL2
#
-#EXE = example_sdl2_surface
EXE = example_sdl2_surface
IMGUI_DIR = ../..
SOURCES = main.cpp
diff --git a/examples/example_sdl2_surface/README.md b/examples/example_sdl2_surface/README.md
new file mode 100644
index 00000000..e65ad2aa
--- /dev/null
+++ b/examples/example_sdl2_surface/README.md
@@ -0,0 +1,35 @@
+# How to Build
+
+## Windows with Visual Studio's IDE
+
+Use the provided project file (`example_sdl2_surface.vcxproj`) or open `imgui_examples.sln`.
+
+## Windows with Visual Studio's CLI
+
+Use `build_win32.bat` or directly:
+```
+set SDL2_DIR=path_to_your_sdl2_folder
+cl /Zi /MD /utf-8 /I.. /I..\.. /I%SDL2_DIR%\include main.cpp ..\..\backends\imgui_impl_sdl2.cpp ..\..\backends\imgui_impl_sdlsurface2.cpp ..\..\imgui*.cpp /FeDebug/example_sdl2_surface.exe /FoDebug/ /link /libpath:%SDL2_DIR%\lib\x86 SDL2.lib SDL2main.lib /subsystem:console
+# ^^ include paths ^^ source files ^^ output exe ^^ output dir ^^ libraries
+# or for 64-bit:
+cl /Zi /MD /utf-8 /I.. /I..\.. /I%SDL2_DIR%\include main.cpp ..\..\backends\imgui_impl_sdl2.cpp ..\..\backends\imgui_impl_sdlsurface2.cpp ..\..\imgui*.cpp /FeDebug/example_sdl2_surface.exe /FoDebug/ /link /libpath:%SDL2_DIR%\lib\x64 SDL2.lib SDL2main.lib /subsystem:console
+```
+
+## Linux and similar Unixes
+
+Use the provided `Makefile` or directly:
+```
+c++ `sdl2-config --cflags` -I .. -I ../.. -I ../../backends \
+ main.cpp ../../backends/imgui_impl_sdl2.cpp ../../backends/imgui_impl_sdlsurface2.cpp ../../imgui*.cpp \
+ `sdl2-config --libs`
+```
+
+## macOS
+
+Use the provided `Makefile` or directly:
+```
+brew install sdl2
+c++ `sdl2-config --cflags` -I .. -I ../.. -I ../../backends \
+ main.cpp ../../backends/imgui_impl_sdl2.cpp ../../backends/imgui_impl_sdlsurface2.cpp ../../imgui*.cpp \
+ `sdl2-config --libs`
+```
diff --git a/examples/example_sdl2_surface/build_win32.bat b/examples/example_sdl2_surface/build_win32.bat
new file mode 100644
index 00000000..526d7ee7
--- /dev/null
+++ b/examples/example_sdl2_surface/build_win32.bat
@@ -0,0 +1,8 @@
+@REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler.
+@set OUT_DIR=Debug
+@set OUT_EXE=example_sdl2_surface
+@set INCLUDES=/I..\.. /I..\..\backends /I%SDL2_DIR%\include
+@set SOURCES=main.cpp ..\..\backends\imgui_impl_sdl2.cpp ..\..\backends\imgui_impl_sdlsurface2.cpp ..\..\imgui*.cpp
+@set LIBS=/LIBPATH:%SDL2_DIR%\lib\x86 SDL2.lib SDL2main.lib
+mkdir %OUT_DIR%
+cl /nologo /Zi /MD /utf-8 %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% /subsystem:console
diff --git a/examples/example_sdl2_surface/example_sdl2_surface.vcxproj b/examples/example_sdl2_surface/example_sdl2_surface.vcxproj
new file mode 100644
index 00000000..00bc71c8
--- /dev/null
+++ b/examples/example_sdl2_surface/example_sdl2_surface.vcxproj
@@ -0,0 +1,187 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ Win32
+
+
+ Release
+ x64
+
+
+
+ {47525E56-7D05-474E-A455-64C5BBFFC029}
+ example_sdl2_surface
+ 8.1
+ example_sdl2_surface
+
+
+
+ Application
+ true
+ MultiByte
+ v140
+
+
+ Application
+ true
+ MultiByte
+ v140
+
+
+ Application
+ false
+ true
+ MultiByte
+ v140
+
+
+ Application
+ false
+ true
+ MultiByte
+ v140
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(ProjectDir)$(Configuration)\
+ $(ProjectDir)$(Configuration)\
+ $(IncludePath)
+
+
+ $(ProjectDir)$(Configuration)\
+ $(ProjectDir)$(Configuration)\
+ $(IncludePath)
+
+
+ $(ProjectDir)$(Configuration)\
+ $(ProjectDir)$(Configuration)\
+ $(IncludePath)
+
+
+ $(ProjectDir)$(Configuration)\
+ $(ProjectDir)$(Configuration)\
+ $(IncludePath)
+
+
+
+ Level4
+ Disabled
+ ..\..;..\..\backends;%SDL2_DIR%\include;%(AdditionalIncludeDirectories)
+ /utf-8 %(AdditionalOptions)
+
+
+ true
+ %SDL2_DIR%\lib\x86;%(AdditionalLibraryDirectories)
+ SDL2.lib;SDL2main.lib;%(AdditionalDependencies)
+ Console
+ msvcrt.lib
+
+
+
+
+ Level4
+ Disabled
+ ..\..;..\..\backends;%SDL2_DIR%\include;%(AdditionalIncludeDirectories)
+ /utf-8 %(AdditionalOptions)
+
+
+ true
+ %SDL2_DIR%\lib\x64;%(AdditionalLibraryDirectories)
+ SDL2.lib;SDL2main.lib;%(AdditionalDependencies)
+ Console
+ msvcrt.lib
+
+
+
+
+ Level4
+ MaxSpeed
+ true
+ true
+ ..\..;..\..\backends;%SDL2_DIR%\include;%(AdditionalIncludeDirectories)
+ false
+ /utf-8 %(AdditionalOptions)
+
+
+ true
+ true
+ true
+ %SDL2_DIR%\lib\x86;%(AdditionalLibraryDirectories)
+ SDL2.lib;SDL2main.lib;%(AdditionalDependencies)
+ Console
+
+
+
+
+
+
+ Level4
+ MaxSpeed
+ true
+ true
+ ..\..;..\..\backends;%SDL2_DIR%\include;%(AdditionalIncludeDirectories)
+ false
+ /utf-8 %(AdditionalOptions)
+
+
+ true
+ true
+ true
+ %SDL2_DIR%\lib\x64;%(AdditionalLibraryDirectories)
+ SDL2.lib;SDL2main.lib;%(AdditionalDependencies)
+ Console
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/examples/example_sdl2_surface/example_sdl2_surface.vcxproj.filters b/examples/example_sdl2_surface/example_sdl2_surface.vcxproj.filters
new file mode 100644
index 00000000..047a273d
--- /dev/null
+++ b/examples/example_sdl2_surface/example_sdl2_surface.vcxproj.filters
@@ -0,0 +1,64 @@
+
+
+
+
+ {20b90ce4-7fcb-4731-b9a0-075f875de82d}
+
+
+ {f18ab499-84e1-499f-8eff-9754361e0e52}
+ cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
+
+
+
+
+ imgui
+
+
+ imgui
+
+
+ imgui
+
+
+ sources
+
+
+ imgui
+
+
+ imgui
+
+
+ sources
+
+
+ sources
+
+
+
+
+ imgui
+
+
+ imgui
+
+
+ imgui
+
+
+ sources
+
+
+ sources
+
+
+
+
+
+ imgui
+
+
+ imgui
+
+
+
diff --git a/examples/imgui_examples.sln b/examples/imgui_examples.sln
index 96087aea..f0b3c148 100644
--- a/examples/imgui_examples.sln
+++ b/examples/imgui_examples.sln
@@ -29,6 +29,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "example_win32_opengl3", "ex
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "example_sdl2_sdlrenderer2", "example_sdl2_sdlrenderer2\example_sdl2_sdlrenderer2.vcxproj", "{0C0B2BEA-311F-473C-9652-87923EF639E3}"
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "example_sdl2_surface", "example_sdl2_surface\example_sdl2_surface.vcxproj", "{47525E56-7D05-474E-A455-64C5BBFFC029}"
+EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "example_sdl3_opengl3", "example_sdl3_opengl3\example_sdl3_opengl3.vcxproj", "{84AAA301-84FE-428B-9E3E-817BC8123C0C}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "example_sdl3_sdlrenderer3", "example_sdl3_sdlrenderer3\example_sdl3_sdlrenderer3.vcxproj", "{C0290D21-3AD2-4A35-ABBC-A2F5F48326DA}"
@@ -155,6 +157,14 @@ Global
{0C0B2BEA-311F-473C-9652-87923EF639E3}.Release|Win32.Build.0 = Release|Win32
{0C0B2BEA-311F-473C-9652-87923EF639E3}.Release|x64.ActiveCfg = Release|x64
{0C0B2BEA-311F-473C-9652-87923EF639E3}.Release|x64.Build.0 = Release|x64
+ {47525E56-7D05-474E-A455-64C5BBFFC029}.Debug|Win32.ActiveCfg = Debug|Win32
+ {47525E56-7D05-474E-A455-64C5BBFFC029}.Debug|Win32.Build.0 = Debug|Win32
+ {47525E56-7D05-474E-A455-64C5BBFFC029}.Debug|x64.ActiveCfg = Debug|x64
+ {47525E56-7D05-474E-A455-64C5BBFFC029}.Debug|x64.Build.0 = Debug|x64
+ {47525E56-7D05-474E-A455-64C5BBFFC029}.Release|Win32.ActiveCfg = Release|Win32
+ {47525E56-7D05-474E-A455-64C5BBFFC029}.Release|Win32.Build.0 = Release|Win32
+ {47525E56-7D05-474E-A455-64C5BBFFC029}.Release|x64.ActiveCfg = Release|x64
+ {47525E56-7D05-474E-A455-64C5BBFFC029}.Release|x64.Build.0 = Release|x64
{84AAA301-84FE-428B-9E3E-817BC8123C0C}.Debug|Win32.ActiveCfg = Debug|Win32
{84AAA301-84FE-428B-9E3E-817BC8123C0C}.Debug|Win32.Build.0 = Debug|Win32
{84AAA301-84FE-428B-9E3E-817BC8123C0C}.Debug|x64.ActiveCfg = Debug|x64