diff --git a/.gitignore b/.gitignore
index a92f38693..49476885a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -86,7 +86,6 @@ src/render/direct3d12/D3D12_*_One.h
src/render/direct3d12/D3D12_*_Series.h
src/gpu/d3d12/D3D12_*_One.h
src/gpu/d3d12/D3D12_*_Series.h
-Directory.Build.props
# for Android
android-project/local.properties
diff --git a/VisualC/SDL.sln b/VisualC/SDL.sln
index f0492dfb1..280ade9c4 100644
--- a/VisualC/SDL.sln
+++ b/VisualC/SDL.sln
@@ -12,7 +12,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testatomic", "tests\testato
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testautomation", "tests\testautomation\testautomation.vcxproj", "{9C7E8C03-3130-436D-A97E-E8F8ED1AC4EA}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testdialog", "tests\testdialog\testdialog.vcxproj", "{97A3A89b-E023-48CD-905F-CDBDE8D951DE}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testdialog", "tests\testdialog\testdialog.vcxproj", "{97A3A89B-E023-48CD-905F-CDBDE8D951DE}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testdraw", "tests\testdraw\testdraw.vcxproj", "{8682FE1E-0CF6-4EDD-9BB5-1733D8C8B4DF}"
EndProject
@@ -54,6 +54,63 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testsurround", "tests\tests
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testpen", "tests\testpen\testpen.vcxproj", "{C4E04D18-EF76-4B42-B4C2-16A1BACDC1A3}"
EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "examples", "examples", "{1498F0CD-F4DA-4847-9CB2-FB18D48061D5}"
+ ProjectSection(SolutionItems) = preProject
+ examples\Directory.Build.props = examples\Directory.Build.props
+ EndProjectSection
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "audio", "audio", "{1B61A1B7-92DE-4C37-9151-D2928D6449AB}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "01-simple-playback", "examples\audio\01-simple-playback\01-simple-playback.vcxproj", "{EB448819-74BC-40C9-A61A-4D4ECD55F9D5}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "02-simple-playback-callback", "examples\audio\02-simple-playback-callback\02-simple-playback-callback.vcxproj", "{6B710DFF-8A4A-40A2-BF2D-88D266F3D4F0}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "camera", "camera", "{AAEC8338-4D33-4AF5-9A1F-B9FF027D4607}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "01-read-and-draw", "examples\camera\01-read-and-draw\01-read-and-draw.vcxproj", "{510ACF0C-4012-4216-98EF-E4F155DE33CE}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "game", "game", "{D1BF59F6-22DC-493B-BDEB-451A50DA793D}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "01-snake", "examples\game\01-snake\01-snake.vcxproj", "{7820969A-5B7B-4046-BB0A-82905D457FC5}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "pen", "pen", "{F2247885-8EE8-42F4-A702-4155587620E0}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "01-drawing-lines", "examples\pen\01-drawing-lines\01-drawing-lines.vcxproj", "{5EDA1ED3-8213-4C12-B0DF-B631EB611804}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "renderer", "renderer", "{F91DDAF0-B74F-4516-A1A9-42ED8DFCBF6A}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "01-clear", "examples\renderer\01-clear\01-clear.vcxproj", "{896557AC-7575-480C-8FFD-AB08B5DA305D}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "02-primitives", "examples\renderer\02-primitives\02-primitives.vcxproj", "{504DC7EC-D82E-448E-9C7D-3BE7981592B3}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "03-lines", "examples\renderer\03-lines\03-lines.vcxproj", "{BDE7DBC0-DCE7-432E-8750-C4AE55463699}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "04-points", "examples\renderer\04-points\04-points.vcxproj", "{7B250AB1-92D3-4F1A-BEB4-19605A69CEDB}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "05-rectangles", "examples\renderer\05-rectangles\05-rectangles.vcxproj", "{4C0E3A60-24F8-4D4C-81C0-C1777F5E7B17}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "06-textures", "examples\renderer\06-textures\06-textures.vcxproj", "{B3D61611-BFA3-4B66-ADC7-A3CE578A6D36}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "07-streaming-textures", "examples\renderer\07-streaming-textures\07-streaming-textures.vcxproj", "{540AE143-A58F-4D3B-B843-94EA8576522D}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "08-rotating-textures", "examples\renderer\08-rotating-textures\08-rotating-textures.vcxproj", "{7091C001-3D71-47D4-B27B-E99271E5B987}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "09-scaling-textures", "examples\renderer\09-scaling-textures\09-scaling-textures.vcxproj", "{AF8BC84E-0268-4D1F-9503-84D9EE84C65F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "10-geometry", "examples\renderer\10-geometry\10-geometry.vcxproj", "{8B9AB23E-3F40-4145-BA1C-B2CEACFBBD72}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "11-color-mods", "examples\renderer\11-color-mods\11-color-mods.vcxproj", "{E9C6A7A6-22C0-42E6-AC9C-8580A396D077}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "14-viewport", "examples\renderer\14-viewport\14-viewport.vcxproj", "{B85BC466-C7F0-4C6D-8ECF-ED57E775FC73}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "15-cliprect", "examples\renderer\15-cliprect\15-cliprect.vcxproj", "{9DBD962F-EA4D-44E3-8E8E-31D7F060A2DC}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "17-read-pixels", "examples\renderer\17-read-pixels\17-read-pixels.vcxproj", "{EEF00329-4598-4E34-B969-9DD4B0815E6C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "18-debug-text", "examples\renderer\18-debug-text\18-debug-text.vcxproj", "{CC0714AA-8A81-4E29-BEC5-2E4FBC50E7FE}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "03-load-wav", "examples\audio\03-load-wav\03-load-wav.vcxproj", "{608C6C67-7766-471F-BBFF-8B00086039AF}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
@@ -270,6 +327,174 @@ Global
{C4E04D18-EF76-4B42-B4C2-16A1BACDC1A3}.Release|Win32.Build.0 = Release|Win32
{C4E04D18-EF76-4B42-B4C2-16A1BACDC1A3}.Release|x64.ActiveCfg = Release|x64
{C4E04D18-EF76-4B42-B4C2-16A1BACDC1A3}.Release|x64.Build.0 = Release|x64
+ {EB448819-74BC-40C9-A61A-4D4ECD55F9D5}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EB448819-74BC-40C9-A61A-4D4ECD55F9D5}.Debug|Win32.Build.0 = Debug|Win32
+ {EB448819-74BC-40C9-A61A-4D4ECD55F9D5}.Debug|x64.ActiveCfg = Debug|x64
+ {EB448819-74BC-40C9-A61A-4D4ECD55F9D5}.Debug|x64.Build.0 = Debug|x64
+ {EB448819-74BC-40C9-A61A-4D4ECD55F9D5}.Release|Win32.ActiveCfg = Release|Win32
+ {EB448819-74BC-40C9-A61A-4D4ECD55F9D5}.Release|Win32.Build.0 = Release|Win32
+ {EB448819-74BC-40C9-A61A-4D4ECD55F9D5}.Release|x64.ActiveCfg = Release|x64
+ {EB448819-74BC-40C9-A61A-4D4ECD55F9D5}.Release|x64.Build.0 = Release|x64
+ {6B710DFF-8A4A-40A2-BF2D-88D266F3D4F0}.Debug|Win32.ActiveCfg = Debug|Win32
+ {6B710DFF-8A4A-40A2-BF2D-88D266F3D4F0}.Debug|Win32.Build.0 = Debug|Win32
+ {6B710DFF-8A4A-40A2-BF2D-88D266F3D4F0}.Debug|x64.ActiveCfg = Debug|x64
+ {6B710DFF-8A4A-40A2-BF2D-88D266F3D4F0}.Debug|x64.Build.0 = Debug|x64
+ {6B710DFF-8A4A-40A2-BF2D-88D266F3D4F0}.Release|Win32.ActiveCfg = Release|Win32
+ {6B710DFF-8A4A-40A2-BF2D-88D266F3D4F0}.Release|Win32.Build.0 = Release|Win32
+ {6B710DFF-8A4A-40A2-BF2D-88D266F3D4F0}.Release|x64.ActiveCfg = Release|x64
+ {6B710DFF-8A4A-40A2-BF2D-88D266F3D4F0}.Release|x64.Build.0 = Release|x64
+ {510ACF0C-4012-4216-98EF-E4F155DE33CE}.Debug|Win32.ActiveCfg = Debug|Win32
+ {510ACF0C-4012-4216-98EF-E4F155DE33CE}.Debug|Win32.Build.0 = Debug|Win32
+ {510ACF0C-4012-4216-98EF-E4F155DE33CE}.Debug|x64.ActiveCfg = Debug|x64
+ {510ACF0C-4012-4216-98EF-E4F155DE33CE}.Debug|x64.Build.0 = Debug|x64
+ {510ACF0C-4012-4216-98EF-E4F155DE33CE}.Release|Win32.ActiveCfg = Release|Win32
+ {510ACF0C-4012-4216-98EF-E4F155DE33CE}.Release|Win32.Build.0 = Release|Win32
+ {510ACF0C-4012-4216-98EF-E4F155DE33CE}.Release|x64.ActiveCfg = Release|x64
+ {510ACF0C-4012-4216-98EF-E4F155DE33CE}.Release|x64.Build.0 = Release|x64
+ {7820969A-5B7B-4046-BB0A-82905D457FC5}.Debug|Win32.ActiveCfg = Debug|Win32
+ {7820969A-5B7B-4046-BB0A-82905D457FC5}.Debug|Win32.Build.0 = Debug|Win32
+ {7820969A-5B7B-4046-BB0A-82905D457FC5}.Debug|x64.ActiveCfg = Debug|x64
+ {7820969A-5B7B-4046-BB0A-82905D457FC5}.Debug|x64.Build.0 = Debug|x64
+ {7820969A-5B7B-4046-BB0A-82905D457FC5}.Release|Win32.ActiveCfg = Release|Win32
+ {7820969A-5B7B-4046-BB0A-82905D457FC5}.Release|Win32.Build.0 = Release|Win32
+ {7820969A-5B7B-4046-BB0A-82905D457FC5}.Release|x64.ActiveCfg = Release|x64
+ {7820969A-5B7B-4046-BB0A-82905D457FC5}.Release|x64.Build.0 = Release|x64
+ {5EDA1ED3-8213-4C12-B0DF-B631EB611804}.Debug|Win32.ActiveCfg = Debug|Win32
+ {5EDA1ED3-8213-4C12-B0DF-B631EB611804}.Debug|Win32.Build.0 = Debug|Win32
+ {5EDA1ED3-8213-4C12-B0DF-B631EB611804}.Debug|x64.ActiveCfg = Debug|x64
+ {5EDA1ED3-8213-4C12-B0DF-B631EB611804}.Debug|x64.Build.0 = Debug|x64
+ {5EDA1ED3-8213-4C12-B0DF-B631EB611804}.Release|Win32.ActiveCfg = Release|Win32
+ {5EDA1ED3-8213-4C12-B0DF-B631EB611804}.Release|Win32.Build.0 = Release|Win32
+ {5EDA1ED3-8213-4C12-B0DF-B631EB611804}.Release|x64.ActiveCfg = Release|x64
+ {5EDA1ED3-8213-4C12-B0DF-B631EB611804}.Release|x64.Build.0 = Release|x64
+ {896557AC-7575-480C-8FFD-AB08B5DA305D}.Debug|Win32.ActiveCfg = Debug|Win32
+ {896557AC-7575-480C-8FFD-AB08B5DA305D}.Debug|Win32.Build.0 = Debug|Win32
+ {896557AC-7575-480C-8FFD-AB08B5DA305D}.Debug|x64.ActiveCfg = Debug|x64
+ {896557AC-7575-480C-8FFD-AB08B5DA305D}.Debug|x64.Build.0 = Debug|x64
+ {896557AC-7575-480C-8FFD-AB08B5DA305D}.Release|Win32.ActiveCfg = Release|Win32
+ {896557AC-7575-480C-8FFD-AB08B5DA305D}.Release|Win32.Build.0 = Release|Win32
+ {896557AC-7575-480C-8FFD-AB08B5DA305D}.Release|x64.ActiveCfg = Release|x64
+ {896557AC-7575-480C-8FFD-AB08B5DA305D}.Release|x64.Build.0 = Release|x64
+ {504DC7EC-D82E-448E-9C7D-3BE7981592B3}.Debug|Win32.ActiveCfg = Debug|Win32
+ {504DC7EC-D82E-448E-9C7D-3BE7981592B3}.Debug|Win32.Build.0 = Debug|Win32
+ {504DC7EC-D82E-448E-9C7D-3BE7981592B3}.Debug|x64.ActiveCfg = Debug|x64
+ {504DC7EC-D82E-448E-9C7D-3BE7981592B3}.Debug|x64.Build.0 = Debug|x64
+ {504DC7EC-D82E-448E-9C7D-3BE7981592B3}.Release|Win32.ActiveCfg = Release|Win32
+ {504DC7EC-D82E-448E-9C7D-3BE7981592B3}.Release|Win32.Build.0 = Release|Win32
+ {504DC7EC-D82E-448E-9C7D-3BE7981592B3}.Release|x64.ActiveCfg = Release|x64
+ {504DC7EC-D82E-448E-9C7D-3BE7981592B3}.Release|x64.Build.0 = Release|x64
+ {BDE7DBC0-DCE7-432E-8750-C4AE55463699}.Debug|Win32.ActiveCfg = Debug|Win32
+ {BDE7DBC0-DCE7-432E-8750-C4AE55463699}.Debug|Win32.Build.0 = Debug|Win32
+ {BDE7DBC0-DCE7-432E-8750-C4AE55463699}.Debug|x64.ActiveCfg = Debug|x64
+ {BDE7DBC0-DCE7-432E-8750-C4AE55463699}.Debug|x64.Build.0 = Debug|x64
+ {BDE7DBC0-DCE7-432E-8750-C4AE55463699}.Release|Win32.ActiveCfg = Release|Win32
+ {BDE7DBC0-DCE7-432E-8750-C4AE55463699}.Release|Win32.Build.0 = Release|Win32
+ {BDE7DBC0-DCE7-432E-8750-C4AE55463699}.Release|x64.ActiveCfg = Release|x64
+ {BDE7DBC0-DCE7-432E-8750-C4AE55463699}.Release|x64.Build.0 = Release|x64
+ {7B250AB1-92D3-4F1A-BEB4-19605A69CEDB}.Debug|Win32.ActiveCfg = Debug|Win32
+ {7B250AB1-92D3-4F1A-BEB4-19605A69CEDB}.Debug|Win32.Build.0 = Debug|Win32
+ {7B250AB1-92D3-4F1A-BEB4-19605A69CEDB}.Debug|x64.ActiveCfg = Debug|x64
+ {7B250AB1-92D3-4F1A-BEB4-19605A69CEDB}.Debug|x64.Build.0 = Debug|x64
+ {7B250AB1-92D3-4F1A-BEB4-19605A69CEDB}.Release|Win32.ActiveCfg = Release|Win32
+ {7B250AB1-92D3-4F1A-BEB4-19605A69CEDB}.Release|Win32.Build.0 = Release|Win32
+ {7B250AB1-92D3-4F1A-BEB4-19605A69CEDB}.Release|x64.ActiveCfg = Release|x64
+ {7B250AB1-92D3-4F1A-BEB4-19605A69CEDB}.Release|x64.Build.0 = Release|x64
+ {4C0E3A60-24F8-4D4C-81C0-C1777F5E7B17}.Debug|Win32.ActiveCfg = Debug|Win32
+ {4C0E3A60-24F8-4D4C-81C0-C1777F5E7B17}.Debug|Win32.Build.0 = Debug|Win32
+ {4C0E3A60-24F8-4D4C-81C0-C1777F5E7B17}.Debug|x64.ActiveCfg = Debug|x64
+ {4C0E3A60-24F8-4D4C-81C0-C1777F5E7B17}.Debug|x64.Build.0 = Debug|x64
+ {4C0E3A60-24F8-4D4C-81C0-C1777F5E7B17}.Release|Win32.ActiveCfg = Release|Win32
+ {4C0E3A60-24F8-4D4C-81C0-C1777F5E7B17}.Release|Win32.Build.0 = Release|Win32
+ {4C0E3A60-24F8-4D4C-81C0-C1777F5E7B17}.Release|x64.ActiveCfg = Release|x64
+ {4C0E3A60-24F8-4D4C-81C0-C1777F5E7B17}.Release|x64.Build.0 = Release|x64
+ {B3D61611-BFA3-4B66-ADC7-A3CE578A6D36}.Debug|Win32.ActiveCfg = Debug|Win32
+ {B3D61611-BFA3-4B66-ADC7-A3CE578A6D36}.Debug|Win32.Build.0 = Debug|Win32
+ {B3D61611-BFA3-4B66-ADC7-A3CE578A6D36}.Debug|x64.ActiveCfg = Debug|x64
+ {B3D61611-BFA3-4B66-ADC7-A3CE578A6D36}.Debug|x64.Build.0 = Debug|x64
+ {B3D61611-BFA3-4B66-ADC7-A3CE578A6D36}.Release|Win32.ActiveCfg = Release|Win32
+ {B3D61611-BFA3-4B66-ADC7-A3CE578A6D36}.Release|Win32.Build.0 = Release|Win32
+ {B3D61611-BFA3-4B66-ADC7-A3CE578A6D36}.Release|x64.ActiveCfg = Release|x64
+ {B3D61611-BFA3-4B66-ADC7-A3CE578A6D36}.Release|x64.Build.0 = Release|x64
+ {540AE143-A58F-4D3B-B843-94EA8576522D}.Debug|Win32.ActiveCfg = Debug|Win32
+ {540AE143-A58F-4D3B-B843-94EA8576522D}.Debug|Win32.Build.0 = Debug|Win32
+ {540AE143-A58F-4D3B-B843-94EA8576522D}.Debug|x64.ActiveCfg = Debug|x64
+ {540AE143-A58F-4D3B-B843-94EA8576522D}.Debug|x64.Build.0 = Debug|x64
+ {540AE143-A58F-4D3B-B843-94EA8576522D}.Release|Win32.ActiveCfg = Release|Win32
+ {540AE143-A58F-4D3B-B843-94EA8576522D}.Release|Win32.Build.0 = Release|Win32
+ {540AE143-A58F-4D3B-B843-94EA8576522D}.Release|x64.ActiveCfg = Release|x64
+ {540AE143-A58F-4D3B-B843-94EA8576522D}.Release|x64.Build.0 = Release|x64
+ {7091C001-3D71-47D4-B27B-E99271E5B987}.Debug|Win32.ActiveCfg = Debug|Win32
+ {7091C001-3D71-47D4-B27B-E99271E5B987}.Debug|Win32.Build.0 = Debug|Win32
+ {7091C001-3D71-47D4-B27B-E99271E5B987}.Debug|x64.ActiveCfg = Debug|x64
+ {7091C001-3D71-47D4-B27B-E99271E5B987}.Debug|x64.Build.0 = Debug|x64
+ {7091C001-3D71-47D4-B27B-E99271E5B987}.Release|Win32.ActiveCfg = Release|Win32
+ {7091C001-3D71-47D4-B27B-E99271E5B987}.Release|Win32.Build.0 = Release|Win32
+ {7091C001-3D71-47D4-B27B-E99271E5B987}.Release|x64.ActiveCfg = Release|x64
+ {7091C001-3D71-47D4-B27B-E99271E5B987}.Release|x64.Build.0 = Release|x64
+ {AF8BC84E-0268-4D1F-9503-84D9EE84C65F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {AF8BC84E-0268-4D1F-9503-84D9EE84C65F}.Debug|Win32.Build.0 = Debug|Win32
+ {AF8BC84E-0268-4D1F-9503-84D9EE84C65F}.Debug|x64.ActiveCfg = Debug|x64
+ {AF8BC84E-0268-4D1F-9503-84D9EE84C65F}.Debug|x64.Build.0 = Debug|x64
+ {AF8BC84E-0268-4D1F-9503-84D9EE84C65F}.Release|Win32.ActiveCfg = Release|Win32
+ {AF8BC84E-0268-4D1F-9503-84D9EE84C65F}.Release|Win32.Build.0 = Release|Win32
+ {AF8BC84E-0268-4D1F-9503-84D9EE84C65F}.Release|x64.ActiveCfg = Release|x64
+ {AF8BC84E-0268-4D1F-9503-84D9EE84C65F}.Release|x64.Build.0 = Release|x64
+ {8B9AB23E-3F40-4145-BA1C-B2CEACFBBD72}.Debug|Win32.ActiveCfg = Debug|Win32
+ {8B9AB23E-3F40-4145-BA1C-B2CEACFBBD72}.Debug|Win32.Build.0 = Debug|Win32
+ {8B9AB23E-3F40-4145-BA1C-B2CEACFBBD72}.Debug|x64.ActiveCfg = Debug|x64
+ {8B9AB23E-3F40-4145-BA1C-B2CEACFBBD72}.Debug|x64.Build.0 = Debug|x64
+ {8B9AB23E-3F40-4145-BA1C-B2CEACFBBD72}.Release|Win32.ActiveCfg = Release|Win32
+ {8B9AB23E-3F40-4145-BA1C-B2CEACFBBD72}.Release|Win32.Build.0 = Release|Win32
+ {8B9AB23E-3F40-4145-BA1C-B2CEACFBBD72}.Release|x64.ActiveCfg = Release|x64
+ {8B9AB23E-3F40-4145-BA1C-B2CEACFBBD72}.Release|x64.Build.0 = Release|x64
+ {E9C6A7A6-22C0-42E6-AC9C-8580A396D077}.Debug|Win32.ActiveCfg = Debug|Win32
+ {E9C6A7A6-22C0-42E6-AC9C-8580A396D077}.Debug|Win32.Build.0 = Debug|Win32
+ {E9C6A7A6-22C0-42E6-AC9C-8580A396D077}.Debug|x64.ActiveCfg = Debug|x64
+ {E9C6A7A6-22C0-42E6-AC9C-8580A396D077}.Debug|x64.Build.0 = Debug|x64
+ {E9C6A7A6-22C0-42E6-AC9C-8580A396D077}.Release|Win32.ActiveCfg = Release|Win32
+ {E9C6A7A6-22C0-42E6-AC9C-8580A396D077}.Release|Win32.Build.0 = Release|Win32
+ {E9C6A7A6-22C0-42E6-AC9C-8580A396D077}.Release|x64.ActiveCfg = Release|x64
+ {E9C6A7A6-22C0-42E6-AC9C-8580A396D077}.Release|x64.Build.0 = Release|x64
+ {B85BC466-C7F0-4C6D-8ECF-ED57E775FC73}.Debug|Win32.ActiveCfg = Debug|Win32
+ {B85BC466-C7F0-4C6D-8ECF-ED57E775FC73}.Debug|Win32.Build.0 = Debug|Win32
+ {B85BC466-C7F0-4C6D-8ECF-ED57E775FC73}.Debug|x64.ActiveCfg = Debug|x64
+ {B85BC466-C7F0-4C6D-8ECF-ED57E775FC73}.Debug|x64.Build.0 = Debug|x64
+ {B85BC466-C7F0-4C6D-8ECF-ED57E775FC73}.Release|Win32.ActiveCfg = Release|Win32
+ {B85BC466-C7F0-4C6D-8ECF-ED57E775FC73}.Release|Win32.Build.0 = Release|Win32
+ {B85BC466-C7F0-4C6D-8ECF-ED57E775FC73}.Release|x64.ActiveCfg = Release|x64
+ {B85BC466-C7F0-4C6D-8ECF-ED57E775FC73}.Release|x64.Build.0 = Release|x64
+ {9DBD962F-EA4D-44E3-8E8E-31D7F060A2DC}.Debug|Win32.ActiveCfg = Debug|Win32
+ {9DBD962F-EA4D-44E3-8E8E-31D7F060A2DC}.Debug|Win32.Build.0 = Debug|Win32
+ {9DBD962F-EA4D-44E3-8E8E-31D7F060A2DC}.Debug|x64.ActiveCfg = Debug|x64
+ {9DBD962F-EA4D-44E3-8E8E-31D7F060A2DC}.Debug|x64.Build.0 = Debug|x64
+ {9DBD962F-EA4D-44E3-8E8E-31D7F060A2DC}.Release|Win32.ActiveCfg = Release|Win32
+ {9DBD962F-EA4D-44E3-8E8E-31D7F060A2DC}.Release|Win32.Build.0 = Release|Win32
+ {9DBD962F-EA4D-44E3-8E8E-31D7F060A2DC}.Release|x64.ActiveCfg = Release|x64
+ {9DBD962F-EA4D-44E3-8E8E-31D7F060A2DC}.Release|x64.Build.0 = Release|x64
+ {EEF00329-4598-4E34-B969-9DD4B0815E6C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EEF00329-4598-4E34-B969-9DD4B0815E6C}.Debug|Win32.Build.0 = Debug|Win32
+ {EEF00329-4598-4E34-B969-9DD4B0815E6C}.Debug|x64.ActiveCfg = Debug|x64
+ {EEF00329-4598-4E34-B969-9DD4B0815E6C}.Debug|x64.Build.0 = Debug|x64
+ {EEF00329-4598-4E34-B969-9DD4B0815E6C}.Release|Win32.ActiveCfg = Release|Win32
+ {EEF00329-4598-4E34-B969-9DD4B0815E6C}.Release|Win32.Build.0 = Release|Win32
+ {EEF00329-4598-4E34-B969-9DD4B0815E6C}.Release|x64.ActiveCfg = Release|x64
+ {EEF00329-4598-4E34-B969-9DD4B0815E6C}.Release|x64.Build.0 = Release|x64
+ {CC0714AA-8A81-4E29-BEC5-2E4FBC50E7FE}.Debug|Win32.ActiveCfg = Debug|Win32
+ {CC0714AA-8A81-4E29-BEC5-2E4FBC50E7FE}.Debug|Win32.Build.0 = Debug|Win32
+ {CC0714AA-8A81-4E29-BEC5-2E4FBC50E7FE}.Debug|x64.ActiveCfg = Debug|x64
+ {CC0714AA-8A81-4E29-BEC5-2E4FBC50E7FE}.Debug|x64.Build.0 = Debug|x64
+ {CC0714AA-8A81-4E29-BEC5-2E4FBC50E7FE}.Release|Win32.ActiveCfg = Release|Win32
+ {CC0714AA-8A81-4E29-BEC5-2E4FBC50E7FE}.Release|Win32.Build.0 = Release|Win32
+ {CC0714AA-8A81-4E29-BEC5-2E4FBC50E7FE}.Release|x64.ActiveCfg = Release|x64
+ {CC0714AA-8A81-4E29-BEC5-2E4FBC50E7FE}.Release|x64.Build.0 = Release|x64
+ {608C6C67-7766-471F-BBFF-8B00086039AF}.Debug|Win32.ActiveCfg = Debug|Win32
+ {608C6C67-7766-471F-BBFF-8B00086039AF}.Debug|Win32.Build.0 = Debug|Win32
+ {608C6C67-7766-471F-BBFF-8B00086039AF}.Debug|x64.ActiveCfg = Debug|x64
+ {608C6C67-7766-471F-BBFF-8B00086039AF}.Debug|x64.Build.0 = Debug|x64
+ {608C6C67-7766-471F-BBFF-8B00086039AF}.Release|Win32.ActiveCfg = Release|Win32
+ {608C6C67-7766-471F-BBFF-8B00086039AF}.Release|Win32.Build.0 = Release|Win32
+ {608C6C67-7766-471F-BBFF-8B00086039AF}.Release|x64.ActiveCfg = Release|x64
+ {608C6C67-7766-471F-BBFF-8B00086039AF}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -299,6 +524,32 @@ Global
{C4E04D18-EF76-4B42-B4C2-16A1BACDC0A4} = {D69D5741-611F-4E14-8541-1FEE94F50B5A}
{70B894A9-E306-49E8-ABC2-932A952A5E5F} = {D69D5741-611F-4E14-8541-1FEE94F50B5A}
{C4E04D18-EF76-4B42-B4C2-16A1BACDC1A3} = {D69D5741-611F-4E14-8541-1FEE94F50B5A}
+ {1B61A1B7-92DE-4C37-9151-D2928D6449AB} = {1498F0CD-F4DA-4847-9CB2-FB18D48061D5}
+ {EB448819-74BC-40C9-A61A-4D4ECD55F9D5} = {1B61A1B7-92DE-4C37-9151-D2928D6449AB}
+ {6B710DFF-8A4A-40A2-BF2D-88D266F3D4F0} = {1B61A1B7-92DE-4C37-9151-D2928D6449AB}
+ {AAEC8338-4D33-4AF5-9A1F-B9FF027D4607} = {1498F0CD-F4DA-4847-9CB2-FB18D48061D5}
+ {510ACF0C-4012-4216-98EF-E4F155DE33CE} = {AAEC8338-4D33-4AF5-9A1F-B9FF027D4607}
+ {D1BF59F6-22DC-493B-BDEB-451A50DA793D} = {1498F0CD-F4DA-4847-9CB2-FB18D48061D5}
+ {F2247885-8EE8-42F4-A702-4155587620E0} = {1498F0CD-F4DA-4847-9CB2-FB18D48061D5}
+ {F91DDAF0-B74F-4516-A1A9-42ED8DFCBF6A} = {1498F0CD-F4DA-4847-9CB2-FB18D48061D5}
+ {7820969A-5B7B-4046-BB0A-82905D457FC5} = {D1BF59F6-22DC-493B-BDEB-451A50DA793D}
+ {5EDA1ED3-8213-4C12-B0DF-B631EB611804} = {F2247885-8EE8-42F4-A702-4155587620E0}
+ {896557AC-7575-480C-8FFD-AB08B5DA305D} = {F91DDAF0-B74F-4516-A1A9-42ED8DFCBF6A}
+ {504DC7EC-D82E-448E-9C7D-3BE7981592B3} = {F91DDAF0-B74F-4516-A1A9-42ED8DFCBF6A}
+ {BDE7DBC0-DCE7-432E-8750-C4AE55463699} = {F91DDAF0-B74F-4516-A1A9-42ED8DFCBF6A}
+ {7B250AB1-92D3-4F1A-BEB4-19605A69CEDB} = {F91DDAF0-B74F-4516-A1A9-42ED8DFCBF6A}
+ {4C0E3A60-24F8-4D4C-81C0-C1777F5E7B17} = {F91DDAF0-B74F-4516-A1A9-42ED8DFCBF6A}
+ {B3D61611-BFA3-4B66-ADC7-A3CE578A6D36} = {F91DDAF0-B74F-4516-A1A9-42ED8DFCBF6A}
+ {540AE143-A58F-4D3B-B843-94EA8576522D} = {F91DDAF0-B74F-4516-A1A9-42ED8DFCBF6A}
+ {7091C001-3D71-47D4-B27B-E99271E5B987} = {F91DDAF0-B74F-4516-A1A9-42ED8DFCBF6A}
+ {AF8BC84E-0268-4D1F-9503-84D9EE84C65F} = {F91DDAF0-B74F-4516-A1A9-42ED8DFCBF6A}
+ {8B9AB23E-3F40-4145-BA1C-B2CEACFBBD72} = {F91DDAF0-B74F-4516-A1A9-42ED8DFCBF6A}
+ {E9C6A7A6-22C0-42E6-AC9C-8580A396D077} = {F91DDAF0-B74F-4516-A1A9-42ED8DFCBF6A}
+ {B85BC466-C7F0-4C6D-8ECF-ED57E775FC73} = {F91DDAF0-B74F-4516-A1A9-42ED8DFCBF6A}
+ {9DBD962F-EA4D-44E3-8E8E-31D7F060A2DC} = {F91DDAF0-B74F-4516-A1A9-42ED8DFCBF6A}
+ {EEF00329-4598-4E34-B969-9DD4B0815E6C} = {F91DDAF0-B74F-4516-A1A9-42ED8DFCBF6A}
+ {CC0714AA-8A81-4E29-BEC5-2E4FBC50E7FE} = {F91DDAF0-B74F-4516-A1A9-42ED8DFCBF6A}
+ {608C6C67-7766-471F-BBFF-8B00086039AF} = {1B61A1B7-92DE-4C37-9151-D2928D6449AB}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {C320C9F2-1A8F-41D7-B02B-6338F872BCAD}
diff --git a/VisualC/VisualC/examples/audio/01-simple-playback/01-simple-playback.vcxproj b/VisualC/VisualC/examples/audio/01-simple-playback/01-simple-playback.vcxproj
new file mode 100644
index 000000000..54203f7ca
--- /dev/null
+++ b/VisualC/VisualC/examples/audio/01-simple-playback/01-simple-playback.vcxproj
@@ -0,0 +1,13 @@
+
+
+
+ {D68EA64A-14ED-4DBF-B86C-9EC2DDC476FB}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/VisualC/VisualC/examples/audio/02-simple-playback-callback/02-simple-playback-callback.vcxproj b/VisualC/VisualC/examples/audio/02-simple-playback-callback/02-simple-playback-callback.vcxproj
new file mode 100644
index 000000000..0c69fb4e9
--- /dev/null
+++ b/VisualC/VisualC/examples/audio/02-simple-playback-callback/02-simple-playback-callback.vcxproj
@@ -0,0 +1,13 @@
+
+
+
+ {8C80733B-1F90-4682-A999-91699127F182}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/VisualC/VisualC/examples/audio/03-load-wav/03-load-wav.vcxproj b/VisualC/VisualC/examples/audio/03-load-wav/03-load-wav.vcxproj
new file mode 100644
index 000000000..418f20540
--- /dev/null
+++ b/VisualC/VisualC/examples/audio/03-load-wav/03-load-wav.vcxproj
@@ -0,0 +1,13 @@
+
+
+
+ {E941FE4D-964C-43C6-A486-B0966633BED6}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/VisualC/VisualC/examples/camera/01-read-and-draw/01-read-and-draw.vcxproj b/VisualC/VisualC/examples/camera/01-read-and-draw/01-read-and-draw.vcxproj
new file mode 100644
index 000000000..d1009724c
--- /dev/null
+++ b/VisualC/VisualC/examples/camera/01-read-and-draw/01-read-and-draw.vcxproj
@@ -0,0 +1,13 @@
+
+
+
+ {20B1B6AE-B282-4E65-863A-28301B6C5E9F}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/VisualC/VisualC/examples/game/01-snake/01-snake.vcxproj b/VisualC/VisualC/examples/game/01-snake/01-snake.vcxproj
new file mode 100644
index 000000000..9bdfd52e0
--- /dev/null
+++ b/VisualC/VisualC/examples/game/01-snake/01-snake.vcxproj
@@ -0,0 +1,13 @@
+
+
+
+ {7239E6E4-3C4E-45DE-81B4-3BC7635BE63F}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/VisualC/VisualC/examples/pen/01-drawing-lines/01-drawing-lines.vcxproj b/VisualC/VisualC/examples/pen/01-drawing-lines/01-drawing-lines.vcxproj
new file mode 100644
index 000000000..39c55839e
--- /dev/null
+++ b/VisualC/VisualC/examples/pen/01-drawing-lines/01-drawing-lines.vcxproj
@@ -0,0 +1,13 @@
+
+
+
+ {25BB7BA9-DCAB-4944-9F2A-E316D63AF356}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/VisualC/VisualC/examples/renderer/01-clear/01-clear.vcxproj b/VisualC/VisualC/examples/renderer/01-clear/01-clear.vcxproj
new file mode 100644
index 000000000..5be492a64
--- /dev/null
+++ b/VisualC/VisualC/examples/renderer/01-clear/01-clear.vcxproj
@@ -0,0 +1,13 @@
+
+
+
+ {541DB2BF-7BE8-402C-8D7C-4BCC5A16DCDF}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/VisualC/VisualC/examples/renderer/02-primitives/02-primitives.vcxproj b/VisualC/VisualC/examples/renderer/02-primitives/02-primitives.vcxproj
new file mode 100644
index 000000000..3e9f471b6
--- /dev/null
+++ b/VisualC/VisualC/examples/renderer/02-primitives/02-primitives.vcxproj
@@ -0,0 +1,13 @@
+
+
+
+ {1C512964-A1E4-4569-8EA4-1165D89A9FD9}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/VisualC/VisualC/examples/renderer/03-lines/03-lines.vcxproj b/VisualC/VisualC/examples/renderer/03-lines/03-lines.vcxproj
new file mode 100644
index 000000000..ffd6bd314
--- /dev/null
+++ b/VisualC/VisualC/examples/renderer/03-lines/03-lines.vcxproj
@@ -0,0 +1,13 @@
+
+
+
+ {156986DD-710A-4627-8159-19FD1CE0C243}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/VisualC/VisualC/examples/renderer/04-points/04-points.vcxproj b/VisualC/VisualC/examples/renderer/04-points/04-points.vcxproj
new file mode 100644
index 000000000..aea14720e
--- /dev/null
+++ b/VisualC/VisualC/examples/renderer/04-points/04-points.vcxproj
@@ -0,0 +1,13 @@
+
+
+
+ {3D355C93-8429-4226-82D5-F8A63BC02801}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/VisualC/VisualC/examples/renderer/05-rectangles/05-rectangles.vcxproj b/VisualC/VisualC/examples/renderer/05-rectangles/05-rectangles.vcxproj
new file mode 100644
index 000000000..8d3ebbd72
--- /dev/null
+++ b/VisualC/VisualC/examples/renderer/05-rectangles/05-rectangles.vcxproj
@@ -0,0 +1,13 @@
+
+
+
+ {03CFCE68-B607-4781-8348-4F5F93A09A63}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/VisualC/VisualC/examples/renderer/06-textures/06-textures.vcxproj b/VisualC/VisualC/examples/renderer/06-textures/06-textures.vcxproj
new file mode 100644
index 000000000..081cae666
--- /dev/null
+++ b/VisualC/VisualC/examples/renderer/06-textures/06-textures.vcxproj
@@ -0,0 +1,13 @@
+
+
+
+ {90118B89-7011-4BDA-AF6E-FAEF74BAD73C}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/VisualC/VisualC/examples/renderer/07-streaming-textures/07-streaming-textures.vcxproj b/VisualC/VisualC/examples/renderer/07-streaming-textures/07-streaming-textures.vcxproj
new file mode 100644
index 000000000..fb59158e8
--- /dev/null
+++ b/VisualC/VisualC/examples/renderer/07-streaming-textures/07-streaming-textures.vcxproj
@@ -0,0 +1,13 @@
+
+
+
+ {2FE0342B-DB71-42D9-918D-C48099167DB9}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/VisualC/VisualC/examples/renderer/08-rotating-textures/08-rotating-textures.vcxproj b/VisualC/VisualC/examples/renderer/08-rotating-textures/08-rotating-textures.vcxproj
new file mode 100644
index 000000000..23924fb10
--- /dev/null
+++ b/VisualC/VisualC/examples/renderer/08-rotating-textures/08-rotating-textures.vcxproj
@@ -0,0 +1,13 @@
+
+
+
+ {E0D48833-9BD2-46EC-A1DA-BC06C521E3CB}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/VisualC/VisualC/examples/renderer/09-scaling-textures/09-scaling-textures.vcxproj b/VisualC/VisualC/examples/renderer/09-scaling-textures/09-scaling-textures.vcxproj
new file mode 100644
index 000000000..0342b3a38
--- /dev/null
+++ b/VisualC/VisualC/examples/renderer/09-scaling-textures/09-scaling-textures.vcxproj
@@ -0,0 +1,13 @@
+
+
+
+ {76D6D01E-79C3-4599-8920-DADDD5D8F8D0}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/VisualC/VisualC/examples/renderer/10-geometry/10-geometry.vcxproj b/VisualC/VisualC/examples/renderer/10-geometry/10-geometry.vcxproj
new file mode 100644
index 000000000..98daa9eae
--- /dev/null
+++ b/VisualC/VisualC/examples/renderer/10-geometry/10-geometry.vcxproj
@@ -0,0 +1,13 @@
+
+
+
+ {FA567681-211A-43AB-A9B2-6C1EC39CEBFF}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/VisualC/VisualC/examples/renderer/11-color-mods/11-color-mods.vcxproj b/VisualC/VisualC/examples/renderer/11-color-mods/11-color-mods.vcxproj
new file mode 100644
index 000000000..5f952b738
--- /dev/null
+++ b/VisualC/VisualC/examples/renderer/11-color-mods/11-color-mods.vcxproj
@@ -0,0 +1,13 @@
+
+
+
+ {6539C356-F420-4EBF-937A-E03C1EDEF8D5}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/VisualC/VisualC/examples/renderer/14-viewport/14-viewport.vcxproj b/VisualC/VisualC/examples/renderer/14-viewport/14-viewport.vcxproj
new file mode 100644
index 000000000..1bc700106
--- /dev/null
+++ b/VisualC/VisualC/examples/renderer/14-viewport/14-viewport.vcxproj
@@ -0,0 +1,13 @@
+
+
+
+ {42C0ABC6-6E99-4FE2-B4DB-8B1DFA9D2AEC}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/VisualC/VisualC/examples/renderer/15-cliprect/15-cliprect.vcxproj b/VisualC/VisualC/examples/renderer/15-cliprect/15-cliprect.vcxproj
new file mode 100644
index 000000000..fb9775fa8
--- /dev/null
+++ b/VisualC/VisualC/examples/renderer/15-cliprect/15-cliprect.vcxproj
@@ -0,0 +1,13 @@
+
+
+
+ {2ED69519-A202-4B6E-870E-71FD43A5B883}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/VisualC/VisualC/examples/renderer/17-read-pixels/17-read-pixels.vcxproj b/VisualC/VisualC/examples/renderer/17-read-pixels/17-read-pixels.vcxproj
new file mode 100644
index 000000000..125e0dcb4
--- /dev/null
+++ b/VisualC/VisualC/examples/renderer/17-read-pixels/17-read-pixels.vcxproj
@@ -0,0 +1,13 @@
+
+
+
+ {94DB4D43-D07D-4CD3-94FF-B6E96CC97C60}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/VisualC/VisualC/examples/renderer/18-debug-text/18-debug-text.vcxproj b/VisualC/VisualC/examples/renderer/18-debug-text/18-debug-text.vcxproj
new file mode 100644
index 000000000..048a4f9c2
--- /dev/null
+++ b/VisualC/VisualC/examples/renderer/18-debug-text/18-debug-text.vcxproj
@@ -0,0 +1,13 @@
+
+
+
+ {72F39D57-7D82-4040-AE2B-CA7C922506E3}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/VisualC/examples/Directory.Build.props b/VisualC/examples/Directory.Build.props
new file mode 100644
index 000000000..fea48e06c
--- /dev/null
+++ b/VisualC/examples/Directory.Build.props
@@ -0,0 +1,177 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ 15.0
+ Win32Proj
+ 10.0
+
+
+ x64
+
+
+ Application
+ true
+ v143
+ Unicode
+
+
+ Application
+ false
+ v143
+ true
+ Unicode
+
+
+ Application
+ true
+ v143
+ Unicode
+
+
+ Application
+ false
+ v143
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(SolutionDir)$(Platform)\$(Configuration)\
+ $(Platform)\$(Configuration)\
+ $(SolutionDir)$(Platform)\$(Configuration)\
+ $(Platform)\$(Configuration)\
+ $(SolutionDir)$(Platform)\$(Configuration)\
+ $(Platform)\$(Configuration)\
+ $(SolutionDir)$(Platform)\$(Configuration)\
+ $(Platform)\$(Configuration)\
+
+
+ true
+
+
+ true
+
+
+ false
+
+
+ false
+
+
+
+ NotUsing
+ Level3
+ Disabled
+ true
+ WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ pch.h
+
+
+ Console
+ true
+
+
+
+
+ NotUsing
+ Level3
+ Disabled
+ true
+ _DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ pch.h
+
+
+ Console
+ true
+
+
+
+
+ NotUsing
+ Level3
+ MaxSpeed
+ true
+ true
+ true
+ WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ pch.h
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+ NotUsing
+ Level3
+ MaxSpeed
+ true
+ true
+ true
+ NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ pch.h
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+ $(SolutionDir)\..\include;%(AdditionalIncludeDirectories)
+
+
+
+
+ {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}
+ false
+ false
+ true
+
+
+
+
+
\ No newline at end of file
diff --git a/VisualC/examples/audio/01-simple-playback/01-simple-playback.vcxproj b/VisualC/examples/audio/01-simple-playback/01-simple-playback.vcxproj
new file mode 100644
index 000000000..cf428b127
--- /dev/null
+++ b/VisualC/examples/audio/01-simple-playback/01-simple-playback.vcxproj
@@ -0,0 +1,13 @@
+
+
+
+ {EB448819-74BC-40C9-A61A-4D4ECD55F9D5}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/VisualC/examples/audio/02-simple-playback-callback/02-simple-playback-callback.vcxproj b/VisualC/examples/audio/02-simple-playback-callback/02-simple-playback-callback.vcxproj
new file mode 100644
index 000000000..e1e19126f
--- /dev/null
+++ b/VisualC/examples/audio/02-simple-playback-callback/02-simple-playback-callback.vcxproj
@@ -0,0 +1,13 @@
+
+
+
+ {6B710DFF-8A4A-40A2-BF2D-88D266F3D4F0}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/VisualC/examples/audio/03-load-wav/03-load-wav.vcxproj b/VisualC/examples/audio/03-load-wav/03-load-wav.vcxproj
new file mode 100644
index 000000000..8da33130a
--- /dev/null
+++ b/VisualC/examples/audio/03-load-wav/03-load-wav.vcxproj
@@ -0,0 +1,14 @@
+
+
+
+ {608C6C67-7766-471F-BBFF-8B00086039AF}
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/VisualC/examples/camera/01-read-and-draw/01-read-and-draw.vcxproj b/VisualC/examples/camera/01-read-and-draw/01-read-and-draw.vcxproj
new file mode 100644
index 000000000..5dcbfef4c
--- /dev/null
+++ b/VisualC/examples/camera/01-read-and-draw/01-read-and-draw.vcxproj
@@ -0,0 +1,13 @@
+
+
+
+ {510ACF0C-4012-4216-98EF-E4F155DE33CE}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/VisualC/examples/game/01-snake/01-snake.vcxproj b/VisualC/examples/game/01-snake/01-snake.vcxproj
new file mode 100644
index 000000000..c83c670fe
--- /dev/null
+++ b/VisualC/examples/game/01-snake/01-snake.vcxproj
@@ -0,0 +1,13 @@
+
+
+
+ {7820969A-5B7B-4046-BB0A-82905D457FC5}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/VisualC/examples/generate.py b/VisualC/examples/generate.py
new file mode 100644
index 000000000..505251234
--- /dev/null
+++ b/VisualC/examples/generate.py
@@ -0,0 +1,46 @@
+import os
+import pathlib
+import uuid
+
+REPOSITORY_ROOT = pathlib.Path(__file__).parent.parent.parent
+
+def generate(x, y):
+ guid = str(uuid.uuid4()).upper()
+ text = f"""
+
+
+
+ {{{guid}}}
+
+
+
+
+
+
+
+
+
+""".strip()
+
+ file_name = REPOSITORY_ROOT / "VisualC" / "examples" / x / y / f"{y}.vcxproj"
+
+ if file_name.exists():
+ print("Skipping:", file_name)
+ return
+
+ print("Generating file:", file_name)
+ os.makedirs(file_name.parent, exist_ok=True)
+ with open(file_name, "w", encoding="utf-8") as f:
+ f.write(text)
+
+
+def main():
+ path = REPOSITORY_ROOT / "examples"
+ for x in path.iterdir():
+ if x.is_dir():
+ for y in x.iterdir():
+ generate(x.name, y.name)
+
+
+if __name__ == "__main__":
+ main()
diff --git a/VisualC/examples/pen/01-drawing-lines/01-drawing-lines.vcxproj b/VisualC/examples/pen/01-drawing-lines/01-drawing-lines.vcxproj
new file mode 100644
index 000000000..9174268e8
--- /dev/null
+++ b/VisualC/examples/pen/01-drawing-lines/01-drawing-lines.vcxproj
@@ -0,0 +1,13 @@
+
+
+
+ {5EDA1ED3-8213-4C12-B0DF-B631EB611804}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/VisualC/examples/renderer/01-clear/01-clear.vcxproj b/VisualC/examples/renderer/01-clear/01-clear.vcxproj
new file mode 100644
index 000000000..562f7f358
--- /dev/null
+++ b/VisualC/examples/renderer/01-clear/01-clear.vcxproj
@@ -0,0 +1,13 @@
+
+
+
+ {896557AC-7575-480C-8FFD-AB08B5DA305D}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/VisualC/examples/renderer/02-primitives/02-primitives.vcxproj b/VisualC/examples/renderer/02-primitives/02-primitives.vcxproj
new file mode 100644
index 000000000..d4ed14ba5
--- /dev/null
+++ b/VisualC/examples/renderer/02-primitives/02-primitives.vcxproj
@@ -0,0 +1,13 @@
+
+
+
+ {504DC7EC-D82E-448E-9C7D-3BE7981592B3}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/VisualC/examples/renderer/03-lines/03-lines.vcxproj b/VisualC/examples/renderer/03-lines/03-lines.vcxproj
new file mode 100644
index 000000000..01a7809d4
--- /dev/null
+++ b/VisualC/examples/renderer/03-lines/03-lines.vcxproj
@@ -0,0 +1,13 @@
+
+
+
+ {BDE7DBC0-DCE7-432E-8750-C4AE55463699}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/VisualC/examples/renderer/04-points/04-points.vcxproj b/VisualC/examples/renderer/04-points/04-points.vcxproj
new file mode 100644
index 000000000..0796dfdef
--- /dev/null
+++ b/VisualC/examples/renderer/04-points/04-points.vcxproj
@@ -0,0 +1,13 @@
+
+
+
+ {7B250AB1-92D3-4F1A-BEB4-19605A69CEDB}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/VisualC/examples/renderer/05-rectangles/05-rectangles.vcxproj b/VisualC/examples/renderer/05-rectangles/05-rectangles.vcxproj
new file mode 100644
index 000000000..d9f6d795e
--- /dev/null
+++ b/VisualC/examples/renderer/05-rectangles/05-rectangles.vcxproj
@@ -0,0 +1,13 @@
+
+
+
+ {4C0E3A60-24F8-4D4C-81C0-C1777F5E7B17}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/VisualC/examples/renderer/06-textures/06-textures.vcxproj b/VisualC/examples/renderer/06-textures/06-textures.vcxproj
new file mode 100644
index 000000000..8c6595111
--- /dev/null
+++ b/VisualC/examples/renderer/06-textures/06-textures.vcxproj
@@ -0,0 +1,14 @@
+
+
+
+ {B3D61611-BFA3-4B66-ADC7-A3CE578A6D36}
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/VisualC/examples/renderer/07-streaming-textures/07-streaming-textures.vcxproj b/VisualC/examples/renderer/07-streaming-textures/07-streaming-textures.vcxproj
new file mode 100644
index 000000000..6affa1cd1
--- /dev/null
+++ b/VisualC/examples/renderer/07-streaming-textures/07-streaming-textures.vcxproj
@@ -0,0 +1,13 @@
+
+
+
+ {540AE143-A58F-4D3B-B843-94EA8576522D}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/VisualC/examples/renderer/08-rotating-textures/08-rotating-textures.vcxproj b/VisualC/examples/renderer/08-rotating-textures/08-rotating-textures.vcxproj
new file mode 100644
index 000000000..90833c64a
--- /dev/null
+++ b/VisualC/examples/renderer/08-rotating-textures/08-rotating-textures.vcxproj
@@ -0,0 +1,14 @@
+
+
+
+ {7091C001-3D71-47D4-B27B-E99271E5B987}
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/VisualC/examples/renderer/09-scaling-textures/09-scaling-textures.vcxproj b/VisualC/examples/renderer/09-scaling-textures/09-scaling-textures.vcxproj
new file mode 100644
index 000000000..4d97ffc79
--- /dev/null
+++ b/VisualC/examples/renderer/09-scaling-textures/09-scaling-textures.vcxproj
@@ -0,0 +1,13 @@
+
+
+
+ {AF8BC84E-0268-4D1F-9503-84D9EE84C65F}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/VisualC/examples/renderer/10-geometry/10-geometry.vcxproj b/VisualC/examples/renderer/10-geometry/10-geometry.vcxproj
new file mode 100644
index 000000000..f551958a3
--- /dev/null
+++ b/VisualC/examples/renderer/10-geometry/10-geometry.vcxproj
@@ -0,0 +1,14 @@
+
+
+
+ {8B9AB23E-3F40-4145-BA1C-B2CEACFBBD72}
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/VisualC/examples/renderer/11-color-mods/11-color-mods.vcxproj b/VisualC/examples/renderer/11-color-mods/11-color-mods.vcxproj
new file mode 100644
index 000000000..766f6550c
--- /dev/null
+++ b/VisualC/examples/renderer/11-color-mods/11-color-mods.vcxproj
@@ -0,0 +1,14 @@
+
+
+
+ {E9C6A7A6-22C0-42E6-AC9C-8580A396D077}
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/VisualC/examples/renderer/14-viewport/14-viewport.vcxproj b/VisualC/examples/renderer/14-viewport/14-viewport.vcxproj
new file mode 100644
index 000000000..c15c28075
--- /dev/null
+++ b/VisualC/examples/renderer/14-viewport/14-viewport.vcxproj
@@ -0,0 +1,14 @@
+
+
+
+ {B85BC466-C7F0-4C6D-8ECF-ED57E775FC73}
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/VisualC/examples/renderer/15-cliprect/15-cliprect.vcxproj b/VisualC/examples/renderer/15-cliprect/15-cliprect.vcxproj
new file mode 100644
index 000000000..6f8ce5f52
--- /dev/null
+++ b/VisualC/examples/renderer/15-cliprect/15-cliprect.vcxproj
@@ -0,0 +1,14 @@
+
+
+
+ {9DBD962F-EA4D-44E3-8E8E-31D7F060A2DC}
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/VisualC/examples/renderer/17-read-pixels/17-read-pixels.vcxproj b/VisualC/examples/renderer/17-read-pixels/17-read-pixels.vcxproj
new file mode 100644
index 000000000..60b599e1c
--- /dev/null
+++ b/VisualC/examples/renderer/17-read-pixels/17-read-pixels.vcxproj
@@ -0,0 +1,14 @@
+
+
+
+ {EEF00329-4598-4E34-B969-9DD4B0815E6C}
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/VisualC/examples/renderer/18-debug-text/18-debug-text.vcxproj b/VisualC/examples/renderer/18-debug-text/18-debug-text.vcxproj
new file mode 100644
index 000000000..05c964d4d
--- /dev/null
+++ b/VisualC/examples/renderer/18-debug-text/18-debug-text.vcxproj
@@ -0,0 +1,13 @@
+
+
+
+ {CC0714AA-8A81-4E29-BEC5-2E4FBC50E7FE}
+
+
+
+
+
+
+
+
+
\ No newline at end of file