diff src/gui_dwrite.h @ 6110:1bff71d20262 v7.4.393

updated for version 7.4.393 Problem: Text drawing on newer MS-Windows systems is suboptimal. Some multi-byte characters are not displayed, even though the same font in Notepad can display them. (Srinath Avadhanula) Solution: Add the 'renderoptions' option to enable Direct-X drawing. (Taro Muraoka)
author Bram Moolenaar <bram@vim.org>
date Wed, 06 Aug 2014 14:52:30 +0200
parents
children 2ebc3df65ca2
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/src/gui_dwrite.h
@@ -0,0 +1,85 @@
+/* vi:set ts=8 sts=4 sw=4 noet: */
+/*
+ * Author: MURAOKA Taro <koron.kaoriya@gmail.com>
+ *
+ * Contributors:
+ *  - Ken Takata
+ *
+ * Copyright (C) 2013 MURAOKA Taro <koron.kaoriya@gmail.com>
+ * THIS FILE IS DISTRIBUTED UNDER THE VIM LICENSE.
+ */
+
+#ifndef GUI_DWRITE_H
+#define GUI_DWRITE_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct DWriteContext DWriteContext;
+
+typedef struct DWriteRenderingParams {
+    float gamma;
+    float enhancedContrast;
+    float clearTypeLevel;
+    /*
+     * pixelGeometry:
+     *	0 - DWRITE_PIXEL_GEOMETRY_FLAT
+     *	1 - DWRITE_PIXEL_GEOMETRY_RGB
+     *	2 - DWRITE_PIXEL_GEOMETRY_BGR
+     */
+    int pixelGeometry;
+    /*
+     * renderingMode:
+     *	0 - DWRITE_RENDERING_MODE_DEFAULT
+     *	1 - DWRITE_RENDERING_MODE_ALIASED
+     *	2 - DWRITE_RENDERING_MODE_CLEARTYPE_GDI_CLASSIC
+     *	3 - DWRITE_RENDERING_MODE_CLEARTYPE_GDI_NATURAL
+     *	4 - DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL
+     *	5 - DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL_SYMMETRIC
+     *	6 - DWRITE_RENDERING_MODE_OUTLINE
+     */
+    int renderingMode;
+    /*
+     * antialiasMode:
+     *	0 - D2D1_TEXT_ANTIALIAS_MODE_DEFAULT
+     *	1 - D2D1_TEXT_ANTIALIAS_MODE_CLEARTYPE
+     *	2 - D2D1_TEXT_ANTIALIAS_MODE_GRAYSCALE
+     *	3 - D2D1_TEXT_ANTIALIAS_MODE_ALIASED
+     */
+    int textAntialiasMode;
+} DWriteRenderingParams;
+
+void DWrite_Init(void);
+void DWrite_Final(void);
+
+DWriteContext *DWriteContext_Open(void);
+void DWriteContext_BeginDraw(DWriteContext *ctx);
+void DWriteContext_BindDC(DWriteContext *ctx, HDC hdc, RECT *rect);
+void DWriteContext_SetFont(DWriteContext *ctx, HFONT hFont);
+void DWriteContext_DrawText(
+	DWriteContext *ctx,
+	HDC hdc,
+	const WCHAR* text,
+	int len,
+	int x,
+	int y,
+	int w,
+	int h,
+	int cellWidth,
+	COLORREF color);
+void DWriteContext_EndDraw(DWriteContext *ctx);
+void DWriteContext_Close(DWriteContext *ctx);
+
+void DWriteContext_SetRenderingParams(
+	DWriteContext *ctx,
+	const DWriteRenderingParams *params);
+
+DWriteRenderingParams *DWriteContext_GetRenderingParams(
+	DWriteContext *ctx,
+	DWriteRenderingParams *params);
+
+#ifdef __cplusplus
+}
+#endif
+#endif/*GUI_DWRITE_H*/