aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authornyamatongwe <devnull@localhost>2012-07-17 19:38:23 +1000
committernyamatongwe <devnull@localhost>2012-07-17 19:38:23 +1000
commit6fb1f1659c965bf963637dc9e0de38ff2607734a (patch)
tree64a2d12e2c1a623ed406a82463384b81aa7e331f
parent320387a42d5777d29c5f439841f00f84bd51be48 (diff)
downloadscintilla-mirror-6fb1f1659c965bf963637dc9e0de38ff2607734a.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)