diff --git a/projects/VS2017.ANGLE/examples/core_basic_window.vcxproj b/projects/VS2017.ANGLE/examples/core_basic_window.vcxproj
new file mode 100644
index 000000000..e47a7ccfb
--- /dev/null
+++ b/projects/VS2017.ANGLE/examples/core_basic_window.vcxproj
@@ -0,0 +1,194 @@
+
+
+
+
+ Debug.DLL
+ Win32
+
+
+ Debug
+ Win32
+
+
+ Release.DLL
+ Win32
+
+
+ Release
+ Win32
+
+
+
+ {0981CA98-E4A5-4DF1-987F-A41D09131EFC}
+ Win32Proj
+ core_basic_window
+ 10.0
+ core_basic_window
+
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+ $(ProjectDir)$(ProjectName)\$(Configuration)\
+ $(ProjectDir)$(ProjectName)\$(Configuration)\temp
+
+
+ true
+ $(ProjectDir)$(ProjectName)\$(Configuration)\
+ $(ProjectDir)$(ProjectName)\$(Configuration)\temp
+
+
+ false
+ $(ProjectDir)$(ProjectName)\$(Configuration)\
+ $(ProjectDir)$(ProjectName)\$(Configuration)\temp
+
+
+ false
+ $(ProjectDir)$(ProjectName)\$(Configuration)\
+ $(ProjectDir)$(ProjectName)\$(Configuration)\temp
+
+
+
+
+
+ Level3
+ Disabled
+ WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions)
+ CompileAsC
+ $(SolutionDir)..\..\src;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ %(AdditionalLibraryDirectories)
+ kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)
+
+
+ xcopy $(SolutionDir)..\..\src\external\ANGLE\lib\$(PlatformTarget)\*.dll $(OutDir) /Y /E /Q
+
+
+
+
+
+
+ Level3
+ Disabled
+ WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions)
+ CompileAsC
+ $(SolutionDir)..\..\src;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ %(AdditionalLibraryDirectories)
+ kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)
+
+
+ xcopy $(SolutionDir)..\..\src\external\ANGLE\lib\$(PlatformTarget)\*.dll $(OutDir) /Y /E /Q
+
+
+
+
+ Level3
+
+
+ MaxSpeed
+ true
+ true
+ WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions);PLATFORM_DESKTOP
+ $(SolutionDir)..\..\src;%(AdditionalIncludeDirectories)
+ CompileAsC
+ true
+
+
+ Console
+ true
+ true
+ true
+ kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)
+ $(SolutionDir)deps;%(AdditionalLibraryDirectories)
+
+
+ xcopy $(SolutionDir)..\..\src\external\ANGLE\lib\$(PlatformTarget)\*.dll $(OutDir) /Y /E /Q
+
+
+
+
+ Level3
+
+
+ MaxSpeed
+ true
+ true
+ WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions);PLATFORM_DESKTOP
+ $(SolutionDir)..\..\src;%(AdditionalIncludeDirectories)
+ CompileAsC
+ true
+
+
+ Console
+ true
+ true
+ true
+ kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)
+ %(AdditionalLibraryDirectories)
+
+
+ xcopy $(SolutionDir)..\..\src\external\ANGLE\lib\$(PlatformTarget)\*.dll $(OutDir) /Y /E /Q
+
+
+
+
+
+
+
+ {e89d61ac-55de-4482-afd4-df7242ebc859}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/projects/VS2017.ANGLE/examples/core_basic_window_cpp.vcxproj b/projects/VS2017.ANGLE/examples/core_basic_window_cpp.vcxproj
new file mode 100644
index 000000000..fcbc6bfd1
--- /dev/null
+++ b/projects/VS2017.ANGLE/examples/core_basic_window_cpp.vcxproj
@@ -0,0 +1,192 @@
+
+
+
+
+ Debug.DLL
+ Win32
+
+
+ Debug
+ Win32
+
+
+ Release.DLL
+ Win32
+
+
+ Release
+ Win32
+
+
+
+ {B655E850-3322-42F7-941D-6AC18FD66CA1}
+ Win32Proj
+ raylib_example_cpp
+ 10.0
+ core_basic_window_cpp
+
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+ $(ProjectDir)$(ProjectName)\$(Configuration)
+ $(ProjectDir)$(ProjectName)\$(Configuration)\temp
+
+
+ true
+ $(ProjectDir)$(ProjectName)\$(Configuration)
+ $(ProjectDir)$(ProjectName)\$(Configuration)\temp
+
+
+ false
+ $(ProjectDir)$(ProjectName)\$(Configuration)
+ $(ProjectDir)$(ProjectName)\$(Configuration)\temp
+
+
+ false
+ $(ProjectDir)$(ProjectName)\$(Configuration)
+ $(ProjectDir)$(ProjectName)\$(Configuration)\temp
+
+
+
+
+
+ Level3
+ Disabled
+ WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ $(SolutionDir)..\..\src;%(AdditionalIncludeDirectories)
+ CompileAsCpp
+
+
+ Console
+ true
+ kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)
+ $(SolutionDir)..\..\release\libs\win32\msvc;%(AdditionalLibraryDirectories)
+
+
+ xcopy $(SolutionDir)..\..\src\external\ANGLE\lib\$(PlatformTarget)\*.dll $(OutDir) /Y /E /Q
+
+
+
+
+
+
+ Level3
+ Disabled
+ WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ $(SolutionDir)..\..\src;%(AdditionalIncludeDirectories)
+ CompileAsCpp
+
+
+ Console
+ true
+ kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)
+ $(SolutionDir)..\..\release\libs\win32\msvc;%(AdditionalLibraryDirectories)
+
+
+ xcopy $(SolutionDir)..\..\src\external\ANGLE\lib\$(PlatformTarget)\*.dll $(OutDir) /Y /E /Q
+
+
+
+
+ Level3
+
+
+ MaxSpeed
+ true
+ true
+ WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ CompileAsCpp
+ $(SolutionDir)..\..\src;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ true
+ true
+ $(SolutionDir)..\..\release\libs\win32\msvc;%(AdditionalLibraryDirectories)
+ kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)
+
+
+ xcopy $(SolutionDir)..\..\src\external\ANGLE\lib\$(PlatformTarget)\*.dll $(OutDir) /Y /E /Q
+
+
+
+
+ Level3
+
+
+ MaxSpeed
+ true
+ true
+ WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ CompileAsCpp
+ $(SolutionDir)..\..\src;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ true
+ true
+ %(AdditionalLibraryDirectories)
+ kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)
+
+
+ xcopy $(SolutionDir)..\..\src\external\ANGLE\lib\$(PlatformTarget)\*.dll $(OutDir) /Y /E /Q
+
+
+
+
+ {e89d61ac-55de-4482-afd4-df7242ebc859}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/projects/VS2017.ANGLE/raylib.sln b/projects/VS2017.ANGLE/raylib.sln
new file mode 100644
index 000000000..f163b7b70
--- /dev/null
+++ b/projects/VS2017.ANGLE/raylib.sln
@@ -0,0 +1,57 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 15
+VisualStudioVersion = 15.0.27130.2024
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core_basic_window", "examples\core_basic_window.vcxproj", "{0981CA98-E4A5-4DF1-987F-A41D09131EFC}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "raylib", "raylib\raylib.vcxproj", "{E89D61AC-55DE-4482-AFD4-DF7242EBC859}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core_basic_window_cpp", "examples\core_basic_window_cpp.vcxproj", "{B655E850-3322-42F7-941D-6AC18FD66CA1}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "examples", "examples", "{8716DC0F-4FDE-4F57-8E25-5F78DFB80FE1}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug.DLL|x86 = Debug.DLL|x86
+ Debug|x86 = Debug|x86
+ Release.DLL|x86 = Release.DLL|x86
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {0981CA98-E4A5-4DF1-987F-A41D09131EFC}.Debug.DLL|x86.ActiveCfg = Debug.DLL|Win32
+ {0981CA98-E4A5-4DF1-987F-A41D09131EFC}.Debug.DLL|x86.Build.0 = Debug.DLL|Win32
+ {0981CA98-E4A5-4DF1-987F-A41D09131EFC}.Debug|x86.ActiveCfg = Debug|Win32
+ {0981CA98-E4A5-4DF1-987F-A41D09131EFC}.Debug|x86.Build.0 = Debug|Win32
+ {0981CA98-E4A5-4DF1-987F-A41D09131EFC}.Release.DLL|x86.ActiveCfg = Release.DLL|Win32
+ {0981CA98-E4A5-4DF1-987F-A41D09131EFC}.Release.DLL|x86.Build.0 = Release.DLL|Win32
+ {0981CA98-E4A5-4DF1-987F-A41D09131EFC}.Release|x86.ActiveCfg = Release|Win32
+ {0981CA98-E4A5-4DF1-987F-A41D09131EFC}.Release|x86.Build.0 = Release|Win32
+ {E89D61AC-55DE-4482-AFD4-DF7242EBC859}.Debug.DLL|x86.ActiveCfg = Debug.DLL|Win32
+ {E89D61AC-55DE-4482-AFD4-DF7242EBC859}.Debug.DLL|x86.Build.0 = Debug.DLL|Win32
+ {E89D61AC-55DE-4482-AFD4-DF7242EBC859}.Debug|x86.ActiveCfg = Debug|Win32
+ {E89D61AC-55DE-4482-AFD4-DF7242EBC859}.Debug|x86.Build.0 = Debug|Win32
+ {E89D61AC-55DE-4482-AFD4-DF7242EBC859}.Release.DLL|x86.ActiveCfg = Release.DLL|Win32
+ {E89D61AC-55DE-4482-AFD4-DF7242EBC859}.Release.DLL|x86.Build.0 = Release.DLL|Win32
+ {E89D61AC-55DE-4482-AFD4-DF7242EBC859}.Release|x86.ActiveCfg = Release|Win32
+ {E89D61AC-55DE-4482-AFD4-DF7242EBC859}.Release|x86.Build.0 = Release|Win32
+ {B655E850-3322-42F7-941D-6AC18FD66CA1}.Debug.DLL|x86.ActiveCfg = Debug.DLL|Win32
+ {B655E850-3322-42F7-941D-6AC18FD66CA1}.Debug.DLL|x86.Build.0 = Debug.DLL|Win32
+ {B655E850-3322-42F7-941D-6AC18FD66CA1}.Debug|x86.ActiveCfg = Debug|Win32
+ {B655E850-3322-42F7-941D-6AC18FD66CA1}.Debug|x86.Build.0 = Debug|Win32
+ {B655E850-3322-42F7-941D-6AC18FD66CA1}.Release.DLL|x86.ActiveCfg = Release.DLL|Win32
+ {B655E850-3322-42F7-941D-6AC18FD66CA1}.Release.DLL|x86.Build.0 = Release.DLL|Win32
+ {B655E850-3322-42F7-941D-6AC18FD66CA1}.Release|x86.ActiveCfg = Release|Win32
+ {B655E850-3322-42F7-941D-6AC18FD66CA1}.Release|x86.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {0981CA98-E4A5-4DF1-987F-A41D09131EFC} = {8716DC0F-4FDE-4F57-8E25-5F78DFB80FE1}
+ {B655E850-3322-42F7-941D-6AC18FD66CA1} = {8716DC0F-4FDE-4F57-8E25-5F78DFB80FE1}
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {E926C768-6307-4423-A1EC-57E95B1FAB29}
+ EndGlobalSection
+EndGlobal
diff --git a/projects/VS2017.ANGLE/raylib/raylib.vcxproj b/projects/VS2017.ANGLE/raylib/raylib.vcxproj
new file mode 100644
index 000000000..b1cf67b9c
--- /dev/null
+++ b/projects/VS2017.ANGLE/raylib/raylib.vcxproj
@@ -0,0 +1,198 @@
+
+
+
+
+ Debug.DLL
+ Win32
+
+
+ Debug
+ Win32
+
+
+ Release.DLL
+ Win32
+
+
+ Release
+ Win32
+
+
+
+ {E89D61AC-55DE-4482-AFD4-DF7242EBC859}
+ Win32Proj
+ raylib
+ 10.0
+
+
+
+ StaticLibrary
+ true
+ v142
+ Unicode
+
+
+ DynamicLibrary
+ true
+ v142
+ Unicode
+
+
+ StaticLibrary
+ false
+ v142
+ true
+ Unicode
+
+
+ DynamicLibrary
+ false
+ v142
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(SolutionDir)$(ProjectName)\$(Configuration)\
+
+
+ $(SolutionDir)$(ProjectName)\$(Configuration)\
+
+
+ $(SolutionDir)$(ProjectName)\$(Configuration)\
+ $(SolutionDir)$(ProjectName)\$(Configuration)\temp
+
+
+ $(SolutionDir)$(ProjectName)\$(Configuration)\
+ $(SolutionDir)$(ProjectName)\$(Configuration)\temp
+
+
+
+
+
+ Level3
+ Disabled
+ WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions);GRAPHICS_API_OPENGL_ES2;PLATFORM_DESKTOP
+ CompileAsC
+ $(SolutionDir)..\..\src\external\ANGLE;$(SolutionDir)..\..\release\include;$(SolutionDir)..\..\src\external\glfw\include
+
+
+ Windows
+
+
+ $(SolutionDir)..\..\src\external\ANGLE\lib\$(PlatformTarget);%(AdditionalLibraryDirectories)
+ libEGL.lib;libGLESv2.lib
+
+
+
+
+
+
+ Level3
+ Disabled
+ WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions);GRAPHICS_API_OPENGL_33;PLATFORM_DESKTOP;BUILD_LIBTYPE_SHARED
+ CompileAsC
+ $(SolutionDir)..\..\release\include;$(SolutionDir)..\..\src\external\glfw\include
+ MultiThreadedDebug
+
+
+ Windows
+
+
+ %(AdditionalLibraryDirectories)
+
+
+
+
+ Level3
+
+
+ MaxSpeed
+ true
+ true
+ WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions);GRAPHICS_API_OPENGL_ES2;PLATFORM_DESKTOP
+ $(SolutionDir)..\..\src\external\ANGLE;$(SolutionDir)..\..\release\include;$(SolutionDir)..\..\src\external\glfw\include
+ CompileAsC
+
+
+ Windows
+ true
+ true
+
+
+ $(SolutionDir)..\..\src\external\ANGLE\lib\$(PlatformTarget);%(AdditionalLibraryDirectories)
+ libEGL.lib;libGLESv2.lib
+
+
+
+
+ Level3
+
+
+ MaxSpeed
+ true
+ true
+ WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions);GRAPHICS_API_OPENGL_33;PLATFORM_DESKTOP;BUILD_LIBTYPE_SHARED
+ $(SolutionDir)..\..\release\include;$(SolutionDir)..\..\src\external\glfw\include
+ CompileAsC
+ MultiThreaded
+
+
+ Windows
+ true
+ true
+ winmm.lib;%(AdditionalDependencies)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/core.c b/src/core.c
index 26a8b2a48..45539d24b 100644
--- a/src/core.c
+++ b/src/core.c
@@ -2470,7 +2470,11 @@ static bool InitGraphicsDevice(int width, int height)
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 2);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 0);
glfwWindowHint(GLFW_CLIENT_API, GLFW_OPENGL_ES_API);
- glfwWindowHint(GLFW_CONTEXT_CREATION_API, GLFW_NATIVE_CONTEXT_API); // Alternative: GLFW_EGL_CONTEXT_API (ANGLE)
+#if defined(PLATFORM_DESKTOP)
+ glfwWindowHint(GLFW_CONTEXT_CREATION_API, GLFW_EGL_CONTEXT_API);
+#else
+ glfwWindowHint(GLFW_CONTEXT_CREATION_API, GLFW_NATIVE_CONTEXT_API);
+#endif
}
if (fullscreen)
diff --git a/src/external/ANGLE/lib/x64/d3dcompiler_47.dll b/src/external/ANGLE/lib/x64/d3dcompiler_47.dll
new file mode 100644
index 000000000..47040da0f
Binary files /dev/null and b/src/external/ANGLE/lib/x64/d3dcompiler_47.dll differ
diff --git a/src/external/ANGLE/lib/x64/libEGL.dll b/src/external/ANGLE/lib/x64/libEGL.dll
new file mode 100644
index 000000000..71c20a7a8
Binary files /dev/null and b/src/external/ANGLE/lib/x64/libEGL.dll differ
diff --git a/src/external/ANGLE/lib/x64/libEGL.lib b/src/external/ANGLE/lib/x64/libEGL.lib
new file mode 100644
index 000000000..b440f78c8
Binary files /dev/null and b/src/external/ANGLE/lib/x64/libEGL.lib differ
diff --git a/src/external/ANGLE/lib/x64/libGLESv2.dll b/src/external/ANGLE/lib/x64/libGLESv2.dll
new file mode 100644
index 000000000..66fcba066
Binary files /dev/null and b/src/external/ANGLE/lib/x64/libGLESv2.dll differ
diff --git a/src/external/ANGLE/lib/x64/libGLESv2.lib b/src/external/ANGLE/lib/x64/libGLESv2.lib
new file mode 100644
index 000000000..af5ba5ad9
Binary files /dev/null and b/src/external/ANGLE/lib/x64/libGLESv2.lib differ
diff --git a/src/external/ANGLE/lib/x86/d3dcompiler_47.dll b/src/external/ANGLE/lib/x86/d3dcompiler_47.dll
new file mode 100644
index 000000000..4ffad2d7d
Binary files /dev/null and b/src/external/ANGLE/lib/x86/d3dcompiler_47.dll differ
diff --git a/src/external/ANGLE/lib/x86/libEGL.dll b/src/external/ANGLE/lib/x86/libEGL.dll
new file mode 100644
index 000000000..a9cb4a9a4
Binary files /dev/null and b/src/external/ANGLE/lib/x86/libEGL.dll differ
diff --git a/src/external/ANGLE/lib/x86/libEGL.lib b/src/external/ANGLE/lib/x86/libEGL.lib
new file mode 100644
index 000000000..1954ceb37
Binary files /dev/null and b/src/external/ANGLE/lib/x86/libEGL.lib differ
diff --git a/src/external/ANGLE/lib/x86/libGLESv2.dll b/src/external/ANGLE/lib/x86/libGLESv2.dll
new file mode 100644
index 000000000..47a71ff76
Binary files /dev/null and b/src/external/ANGLE/lib/x86/libGLESv2.dll differ
diff --git a/src/external/ANGLE/lib/x86/libGLESv2.lib b/src/external/ANGLE/lib/x86/libGLESv2.lib
new file mode 100644
index 000000000..562310cca
Binary files /dev/null and b/src/external/ANGLE/lib/x86/libGLESv2.lib differ