comparison 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
comparison
equal deleted inserted replaced
6109:e21d20c8500f 6110:1bff71d20262
1 /* vi:set ts=8 sts=4 sw=4 noet: */
2 /*
3 * Author: MURAOKA Taro <koron.kaoriya@gmail.com>
4 *
5 * Contributors:
6 * - Ken Takata
7 *
8 * Copyright (C) 2013 MURAOKA Taro <koron.kaoriya@gmail.com>
9 * THIS FILE IS DISTRIBUTED UNDER THE VIM LICENSE.
10 */
11
12 #ifndef GUI_DWRITE_H
13 #define GUI_DWRITE_H
14
15 #ifdef __cplusplus
16 extern "C" {
17 #endif
18
19 typedef struct DWriteContext DWriteContext;
20
21 typedef struct DWriteRenderingParams {
22 float gamma;
23 float enhancedContrast;
24 float clearTypeLevel;
25 /*
26 * pixelGeometry:
27 * 0 - DWRITE_PIXEL_GEOMETRY_FLAT
28 * 1 - DWRITE_PIXEL_GEOMETRY_RGB
29 * 2 - DWRITE_PIXEL_GEOMETRY_BGR
30 */
31 int pixelGeometry;
32 /*
33 * renderingMode:
34 * 0 - DWRITE_RENDERING_MODE_DEFAULT
35 * 1 - DWRITE_RENDERING_MODE_ALIASED
36 * 2 - DWRITE_RENDERING_MODE_CLEARTYPE_GDI_CLASSIC
37 * 3 - DWRITE_RENDERING_MODE_CLEARTYPE_GDI_NATURAL
38 * 4 - DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL
39 * 5 - DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL_SYMMETRIC
40 * 6 - DWRITE_RENDERING_MODE_OUTLINE
41 */
42 int renderingMode;
43 /*
44 * antialiasMode:
45 * 0 - D2D1_TEXT_ANTIALIAS_MODE_DEFAULT
46 * 1 - D2D1_TEXT_ANTIALIAS_MODE_CLEARTYPE
47 * 2 - D2D1_TEXT_ANTIALIAS_MODE_GRAYSCALE
48 * 3 - D2D1_TEXT_ANTIALIAS_MODE_ALIASED
49 */
50 int textAntialiasMode;
51 } DWriteRenderingParams;
52
53 void DWrite_Init(void);
54 void DWrite_Final(void);
55
56 DWriteContext *DWriteContext_Open(void);
57 void DWriteContext_BeginDraw(DWriteContext *ctx);
58 void DWriteContext_BindDC(DWriteContext *ctx, HDC hdc, RECT *rect);
59 void DWriteContext_SetFont(DWriteContext *ctx, HFONT hFont);
60 void DWriteContext_DrawText(
61 DWriteContext *ctx,
62 HDC hdc,
63 const WCHAR* text,
64 int len,
65 int x,
66 int y,
67 int w,
68 int h,
69 int cellWidth,
70 COLORREF color);
71 void DWriteContext_EndDraw(DWriteContext *ctx);
72 void DWriteContext_Close(DWriteContext *ctx);
73
74 void DWriteContext_SetRenderingParams(
75 DWriteContext *ctx,
76 const DWriteRenderingParams *params);
77
78 DWriteRenderingParams *DWriteContext_GetRenderingParams(
79 DWriteContext *ctx,
80 DWriteRenderingParams *params);
81
82 #ifdef __cplusplus
83 }
84 #endif
85 #endif/*GUI_DWRITE_H*/