1 /* vi:set ts=8 sts=4 sw=4 noet: */ 2 /* 3 * Author: MURAOKA Taro <[email protected]> 4 * 5 * Contributors: 6 * - Ken Takata 7 * - Yasuhiro Matsumoto 8 * 9 * Copyright (C) 2013 MURAOKA Taro <[email protected]> 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); 58 void DWriteContext_BindDC(DWriteContext *ctx, HDC hdc, const RECT *rect); 59 void DWriteContext_SetFont(DWriteContext *ctx, HFONT hFont); 60 void DWriteContext_DrawText( 61 DWriteContext *ctx, 62 const WCHAR *text, 63 int len, 64 int x, 65 int y, 66 int w, 67 int h, 68 int cellWidth, 69 COLORREF color, 70 UINT fuOptions, 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); 77 void DWriteContext_Scroll(DWriteContext *ctx, int x, int y, const RECT *rc); 78 void DWriteContext_Flush(DWriteContext *ctx); 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*/ 93