Bram Moolenaar | b5a7a8b | 2014-08-06 14:52:30 +0200 | [diff] [blame] | 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 |
Bram Moolenaar | d7ccc4d | 2017-11-26 14:29:32 +0100 | [diff] [blame] | 7 | * - Yasuhiro Matsumoto |
Bram Moolenaar | b5a7a8b | 2014-08-06 14:52:30 +0200 | [diff] [blame] | 8 | * |
| 9 | * Copyright (C) 2013 MURAOKA Taro <koron.kaoriya@gmail.com> |
| 10 | * THIS FILE IS DISTRIBUTED UNDER THE VIM LICENSE. |
| 11 | */ |
| 12 | |
| 13 | #ifndef GUI_DWRITE_H |
| 14 | #define GUI_DWRITE_H |
| 15 | |
| 16 | #ifdef __cplusplus |
| 17 | extern "C" { |
| 18 | #endif |
| 19 | |
| 20 | typedef struct DWriteContext DWriteContext; |
| 21 | |
| 22 | typedef struct DWriteRenderingParams { |
| 23 | float gamma; |
| 24 | float enhancedContrast; |
| 25 | float clearTypeLevel; |
| 26 | /* |
| 27 | * pixelGeometry: |
| 28 | * 0 - DWRITE_PIXEL_GEOMETRY_FLAT |
| 29 | * 1 - DWRITE_PIXEL_GEOMETRY_RGB |
| 30 | * 2 - DWRITE_PIXEL_GEOMETRY_BGR |
| 31 | */ |
| 32 | int pixelGeometry; |
| 33 | /* |
| 34 | * renderingMode: |
| 35 | * 0 - DWRITE_RENDERING_MODE_DEFAULT |
| 36 | * 1 - DWRITE_RENDERING_MODE_ALIASED |
| 37 | * 2 - DWRITE_RENDERING_MODE_CLEARTYPE_GDI_CLASSIC |
| 38 | * 3 - DWRITE_RENDERING_MODE_CLEARTYPE_GDI_NATURAL |
| 39 | * 4 - DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL |
| 40 | * 5 - DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL_SYMMETRIC |
| 41 | * 6 - DWRITE_RENDERING_MODE_OUTLINE |
| 42 | */ |
| 43 | int renderingMode; |
| 44 | /* |
| 45 | * antialiasMode: |
| 46 | * 0 - D2D1_TEXT_ANTIALIAS_MODE_DEFAULT |
| 47 | * 1 - D2D1_TEXT_ANTIALIAS_MODE_CLEARTYPE |
| 48 | * 2 - D2D1_TEXT_ANTIALIAS_MODE_GRAYSCALE |
| 49 | * 3 - D2D1_TEXT_ANTIALIAS_MODE_ALIASED |
| 50 | */ |
| 51 | int textAntialiasMode; |
| 52 | } DWriteRenderingParams; |
| 53 | |
| 54 | void DWrite_Init(void); |
| 55 | void DWrite_Final(void); |
| 56 | |
| 57 | DWriteContext *DWriteContext_Open(void); |
Bram Moolenaar | 92467d3 | 2017-12-05 13:22:16 +0100 | [diff] [blame] | 58 | void DWriteContext_BindDC(DWriteContext *ctx, HDC hdc, const RECT *rect); |
Bram Moolenaar | b5a7a8b | 2014-08-06 14:52:30 +0200 | [diff] [blame] | 59 | void DWriteContext_SetFont(DWriteContext *ctx, HFONT hFont); |
| 60 | void DWriteContext_DrawText( |
| 61 | DWriteContext *ctx, |
Bram Moolenaar | 92467d3 | 2017-12-05 13:22:16 +0100 | [diff] [blame] | 62 | const WCHAR *text, |
Bram Moolenaar | b5a7a8b | 2014-08-06 14:52:30 +0200 | [diff] [blame] | 63 | int len, |
| 64 | int x, |
| 65 | int y, |
| 66 | int w, |
| 67 | int h, |
| 68 | int cellWidth, |
Bram Moolenaar | d7ccc4d | 2017-11-26 14:29:32 +0100 | [diff] [blame] | 69 | COLORREF color, |
| 70 | UINT fuOptions, |
Bram Moolenaar | 92467d3 | 2017-12-05 13:22:16 +0100 | [diff] [blame] | 71 | const RECT *lprc, |
| 72 | const INT *lpDx); |
| 73 | void DWriteContext_FillRect(DWriteContext *ctx, const RECT *rc, COLORREF color); |
| 74 | void DWriteContext_DrawLine(DWriteContext *ctx, int x1, int y1, int x2, int y2, |
| 75 | COLORREF color); |
| 76 | void DWriteContext_SetPixel(DWriteContext *ctx, int x, int y, COLORREF color); |
Bram Moolenaar | a338adc | 2018-01-31 20:51:47 +0100 | [diff] [blame] | 77 | void DWriteContext_Scroll(DWriteContext *ctx, int x, int y, const RECT *rc); |
Bram Moolenaar | d7ccc4d | 2017-11-26 14:29:32 +0100 | [diff] [blame] | 78 | void DWriteContext_Flush(DWriteContext *ctx); |
Bram Moolenaar | b5a7a8b | 2014-08-06 14:52:30 +0200 | [diff] [blame] | 79 | void DWriteContext_Close(DWriteContext *ctx); |
| 80 | |
| 81 | void DWriteContext_SetRenderingParams( |
| 82 | DWriteContext *ctx, |
| 83 | const DWriteRenderingParams *params); |
| 84 | |
| 85 | DWriteRenderingParams *DWriteContext_GetRenderingParams( |
| 86 | DWriteContext *ctx, |
| 87 | DWriteRenderingParams *params); |
| 88 | |
| 89 | #ifdef __cplusplus |
| 90 | } |
| 91 | #endif |
| 92 | #endif/*GUI_DWRITE_H*/ |