diff --git a/dependencies/angle/d3dcompiler_47.dll b/dependencies/angle/d3dcompiler_47.dll
new file mode 100644
index 000000000..e5bf5cf5b
Binary files /dev/null and b/dependencies/angle/d3dcompiler_47.dll differ
diff --git a/dependencies/angle/libegl.dll b/dependencies/angle/libegl.dll
new file mode 100644
index 000000000..d4fc28d09
Binary files /dev/null and b/dependencies/angle/libegl.dll differ
diff --git a/dependencies/angle/libglesv2.dll b/dependencies/angle/libglesv2.dll
new file mode 100644
index 000000000..922a5f6d2
Binary files /dev/null and b/dependencies/angle/libglesv2.dll differ
diff --git a/include.xml b/include.xml
index 0b55bb24f..29b50c0ae 100644
--- a/include.xml
+++ b/include.xml
@@ -58,6 +58,9 @@
+
+
+
diff --git a/project/Build.xml b/project/Build.xml
index 3928330d0..5ca8a8d22 100644
--- a/project/Build.xml
+++ b/project/Build.xml
@@ -24,6 +24,7 @@
+
diff --git a/project/src/backend/sdl/SDLWindow.cpp b/project/src/backend/sdl/SDLWindow.cpp
index 45a8c7e9c..4c252a0ca 100644
--- a/project/src/backend/sdl/SDLWindow.cpp
+++ b/project/src/backend/sdl/SDLWindow.cpp
@@ -22,6 +22,20 @@ namespace lime {
if (flags & WINDOW_FLAG_RESIZABLE) sdlFlags |= SDL_WINDOW_RESIZABLE;
if (flags & WINDOW_FLAG_BORDERLESS) sdlFlags |= SDL_WINDOW_BORDERLESS;
+ #if defined (HX_WINDOWS) && defined (NATIVE_TOOLKIT_SDL_ANGLE)
+ OSVERSIONINFOEXW osvi = { sizeof (osvi), 0, 0, 0, 0, {0}, 0, 0 };
+ DWORDLONG const dwlConditionMask = VerSetConditionMask (VerSetConditionMask (VerSetConditionMask (0, VER_MAJORVERSION, VER_GREATER_EQUAL), VER_MINORVERSION, VER_GREATER_EQUAL), VER_SERVICEPACKMAJOR, VER_GREATER_EQUAL);
+ osvi.dwMajorVersion = HIBYTE (_WIN32_WINNT_VISTA);
+ osvi.dwMinorVersion = LOBYTE (_WIN32_WINNT_VISTA);
+ osvi.wServicePackMajor = 0;
+
+ if (VerifyVersionInfoW (&osvi, VER_MAJORVERSION | VER_MINORVERSION | VER_SERVICEPACKMAJOR, dwlConditionMask) == FALSE) {
+
+ flags &= ~WINDOW_FLAG_HARDWARE;
+
+ }
+ #endif
+
if (flags & WINDOW_FLAG_HARDWARE) {
sdlFlags |= SDL_WINDOW_OPENGL;