aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authornyamatongwe <unknown>2012-07-17 19:38:23 +1000
committernyamatongwe <unknown>2012-07-17 19:38:23 +1000
commite281ed8bacd81de0ff49340ba817fa5a2908d71b (patch)
tree9a80595e3ff9fb9fd3364a443a7a758a9d91d584
parentc2de152d26b99e2858618a2cd5394f2a0ea3796a (diff)
downloadscintilla-mirror-e281ed8bacd81de0ff49340ba817fa5a2908d71b.tar.gz
Refine checking for Direct2D and DirectWrite by using NTDDI_WIN7 to indicate
a recent SDK and allow disabling Direct2D by defining DISABLE_D2D. Run a test compile of a file that includes these headers and use compilation failure to disable Direct2D.
-rw-r--r--win32/CheckD2D.cxx3
-rw-r--r--win32/PlatWin.cxx2
-rw-r--r--win32/ScintillaWin.cxx2
-rw-r--r--win32/scintilla.mak5
4 files changed, 10 insertions, 2 deletions
diff --git a/win32/CheckD2D.cxx b/win32/CheckD2D.cxx
new file mode 100644
index 000000000..80f5d46d2
--- /dev/null
+++ b/win32/CheckD2D.cxx
@@ -0,0 +1,3 @@
+// This file is compiled to check whether Direct2D and DirectWrite headers are available.
+#include <d2d1.h>
+#include <dwrite.h>
diff --git a/win32/PlatWin.cxx b/win32/PlatWin.cxx
index 507567bb8..723995407 100644
--- a/win32/PlatWin.cxx
+++ b/win32/PlatWin.cxx
@@ -26,7 +26,7 @@
#include <richedit.h>
#include <windowsx.h>
-#if defined(_MSC_VER) && (_MSC_VER > 1200)
+#if defined(NTDDI_WIN7) && !defined(DISABLE_D2D)
#define USE_D2D 1
#endif
diff --git a/win32/ScintillaWin.cxx b/win32/ScintillaWin.cxx
index 367e33466..2caa685a1 100644
--- a/win32/ScintillaWin.cxx
+++ b/win32/ScintillaWin.cxx
@@ -26,7 +26,7 @@
#include <richedit.h>
#include <windowsx.h>
-#if defined(_MSC_VER) && (_MSC_VER > 1200)
+#if defined(NTDDI_WIN7) && !defined(DISABLE_D2D)
#define USE_D2D 1
#endif
diff --git a/win32/scintilla.mak b/win32/scintilla.mak
index b4ca7204a..e57da3c71 100644
--- a/win32/scintilla.mak
+++ b/win32/scintilla.mak
@@ -36,6 +36,11 @@ CXXFLAGS=$(CXXFLAGS) $(NOLOGO)
LDFLAGS=$(LDFLAGS) $(NOLOGO)
!ENDIF
+!IF [cl -c -nologo CheckD2D.cxx >NUL:]
+CXXFLAGS=$(CXXFLAGS) -DDISABLE_D2D
+!MESSAGE Direct2D is not available
+!ENDIF
+
!IFDEF DEBUG
CXXFLAGS=$(CXXFLAGS) $(CXXDEBUG)
LDFLAGS=$(LDDEBUG) $(LDFLAGS)