Skip to content

Instantly share code, notes, and snippets.

@k-takata
Created January 10, 2013 13:49
Show Gist options
  • Save k-takata/4502153 to your computer and use it in GitHub Desktop.
Save k-takata/4502153 to your computer and use it in GitHub Desktop.
patch for vim-kaoriya-vim-mq-ex / patch-direct_write.diff
# HG changeset patch
# Parent 17715aa3c90e26f6493f58825f68378dea1e1b9a
diff --git a/src/Make_cyg.mak b/src/Make_cyg.mak
--- a/src/Make_cyg.mak
+++ b/src/Make_cyg.mak
@@ -116,6 +116,7 @@
#>>>>> name of the compiler and linker, name of lib directory
CROSS_COMPILE =
CC = gcc
+CXX = g++
RC = windres
##############################
@@ -448,8 +449,8 @@
EXE = gvim$(DEBUG_SUFFIX).exe
OUTDIR = gobj$(DEBUG_SUFFIX)
DEFINES += -DFEAT_GUI_W32 -DFEAT_CLIPBOARD
-EXTRA_OBJS += $(OUTDIR)/gui.o $(OUTDIR)/gui_w32.o $(OUTDIR)/gui_beval.o $(OUTDIR)/os_w32exe.o
-EXTRA_LIBS += -mwindows -lcomctl32 -lversion
+EXTRA_OBJS += $(OUTDIR)/gui.o $(OUTDIR)/gui_w32.o $(OUTDIR)/gui_beval.o $(OUTDIR)/os_w32exe.o $(OUTDIR)/gui_dwrite.o
+EXTRA_LIBS += -mwindows -lcomctl32 -lversion -ld2d1 -ldwrite -static-libgcc -static
else
EXE = vim$(DEBUG_SUFFIX).exe
OUTDIR = obj$(DEBUG_SUFFIX)
@@ -541,7 +542,7 @@
# linking unless calling ld directly.
# See /usr/doc/cygwin-doc-1.2/html/faq_toc.html#TOC93 for more information.
$(EXE): $(OUTDIR) $(OBJ)
- $(CC) $(CFLAGS) -o $(EXE) $(OBJ) $(LIBS) -luuid -lole32 $(EXTRA_LIBS)
+ $(CXX) $(CFLAGS) -o $(EXE) $(OBJ) $(LIBS) -luuid -lole32 $(EXTRA_LIBS)
xxd/xxd.exe: xxd/xxd.c
$(MAKE) -C xxd -f Make_cyg.mak CC=$(CC) USEDLL=$(USEDLL)
@@ -594,6 +595,9 @@
$(OUTDIR)/%.o : %.c $(INCL)
$(CC) -c $(CFLAGS) $< -o $@
+$(OUTDIR)/gui_dwrite.o: gui_dwrite.cpp $(INCL) gui_dwrite.h
+ $(CXX) -c $(CFLAGS) gui_dwrite.cpp -o $(OUTDIR)/gui_dwrite.o
+
$(OUTDIR)/ex_docmd.o: ex_docmd.c $(INCL) ex_cmds.h
$(CC) -c $(CFLAGS) ex_docmd.c -o $(OUTDIR)/ex_docmd.o
diff --git a/src/Make_ming.mak b/src/Make_ming.mak
--- a/src/Make_ming.mak
+++ b/src/Make_ming.mak
@@ -340,6 +340,7 @@
endif
endif
CC := $(CROSS_COMPILE)gcc
+CXX := $(CROSS_COMPILE)g++
WINDRES := $(CROSS_COMPILE)windres
WINDRES_CC = $(CC)
@@ -485,8 +486,8 @@
CFLAGS += -s
endif
-LIB = -lkernel32 -luser32 -lgdi32 -ladvapi32 -lcomdlg32 -lcomctl32 -lversion
-GUIOBJ = $(OUTDIR)/gui.o $(OUTDIR)/gui_w32.o $(OUTDIR)/gui_beval.o $(OUTDIR)/os_w32exe.o
+LIB = -lkernel32 -luser32 -lgdi32 -ladvapi32 -lcomdlg32 -lcomctl32 -lversion -ld2d1 -ldwrite
+GUIOBJ = $(OUTDIR)/gui.o $(OUTDIR)/gui_w32.o $(OUTDIR)/gui_beval.o $(OUTDIR)/os_w32exe.o $(OUTDIR)/gui_dwrite.o
OBJ = \
$(OUTDIR)/blowfish.o \
$(OUTDIR)/buffer.o \
@@ -594,7 +595,7 @@
TARGET := gvim$(DEBUG_SUFFIX).exe
DEFINES += $(DEF_GUI)
OBJ += $(GUIOBJ)
-LFLAGS += -mwindows
+LFLAGS += -mwindows -static-libgcc -static
OUTDIR = gobj$(DEBUG_SUFFIX)$(MZSCHEME_SUFFIX)$(ARCH)
else
TARGET := vim$(DEBUG_SUFFIX).exe
@@ -673,7 +674,7 @@
$(CC) $(CFLAGS) -o uninstal.exe uninstal.c $(LIB)
$(TARGET): $(OUTDIR) $(OBJ)
- $(CC) $(CFLAGS) $(LFLAGS) -o $@ $(OBJ) $(LIB) -lole32 -luuid $(LUA_LIB) $(MZSCHEME_LIBDIR) $(MZSCHEME_LIB) $(PYTHONLIB) $(PYTHON3LIB) $(RUBYLIB)
+ $(CXX) $(CFLAGS) $(LFLAGS) -o $@ $(OBJ) $(LIB) -lole32 -luuid $(LUA_LIB) $(MZSCHEME_LIBDIR) $(MZSCHEME_LIB) $(PYTHONLIB) $(PYTHON3LIB) $(RUBYLIB)
upx: exes
upx gvim.exe
@@ -725,6 +726,9 @@
$(OUTDIR):
$(MKDIR) $(OUTDIR)
+$(OUTDIR)/gui_dwrite.o: gui_dwrite.cpp $(INCL) gui_dwrite.h
+ $(CXX) -c $(CFLAGS) gui_dwrite.cpp -o $(OUTDIR)/gui_dwrite.o
+
$(OUTDIR)/ex_docmd.o: ex_docmd.c $(INCL) ex_cmds.h
$(CC) -c $(CFLAGS) ex_docmd.c -o $(OUTDIR)/ex_docmd.o
diff --git a/src/gui_dwrite.cpp b/src/gui_dwrite.cpp
--- a/src/gui_dwrite.cpp
+++ b/src/gui_dwrite.cpp
@@ -1,4 +1,10 @@
+/* vi:set ts=8 sts=4 sw=4: */
+
#define WIN32_LEAN_AND_MEAN
+#undef WINVER
+#define WINVER 0x0600
+#undef _WIN32_WINNT
+#define _WIN32_WINNT 0x0600
#include <windows.h>
#include <crtdbg.h>
@@ -8,6 +14,12 @@
#include "gui_dwrite.h"
+#ifdef __MINGW32__
+#define __maybenull SAL__maybenull
+#define __in SAL__in
+#define __out SAL__out
+#endif
+
template <class T> inline void SafeRelease(T **ppT)
{
if (*ppT)
@@ -34,9 +46,10 @@
{
pRenderTarget_->AddRef();
pRenderingParams_->AddRef();
+ AddRef();
}
- GdiTextRenderer::~GdiTextRenderer()
+ ~GdiTextRenderer()
{
SafeRelease(&pRenderTarget_);
SafeRelease(&pRenderingParams_);
@@ -423,11 +436,11 @@
HRESULT hr = SetLOGFONT(logFont, 0.f);
if (SUCCEEDED(hr))
- hr = mTextFormat->SetTextAlignment(DWRITE_TEXT_ALIGNMENT_CENTER);
+ hr = mTextFormat->SetTextAlignment(DWRITE_TEXT_ALIGNMENT_LEADING);
if (SUCCEEDED(hr))
hr = mTextFormat->SetParagraphAlignment(
- DWRITE_PARAGRAPH_ALIGNMENT_CENTER);
+ DWRITE_PARAGRAPH_ALIGNMENT_NEAR);
}
void
diff --git a/src/gui_dwrite.h b/src/gui_dwrite.h
--- a/src/gui_dwrite.h
+++ b/src/gui_dwrite.h
@@ -1,3 +1,5 @@
+/* vi:set ts=8 sts=4 sw=4: */
+
#ifndef GUI_DWRITE_H
#define GUI_DWRITE_H
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment