1b5a7a8b5SBram Moolenaar /* vi:set ts=8 sts=4 sw=4 noet: */ 2b5a7a8b5SBram Moolenaar /* 3b5a7a8b5SBram Moolenaar * Author: MURAOKA Taro <[email protected]> 4b5a7a8b5SBram Moolenaar * 5b5a7a8b5SBram Moolenaar * Contributors: 6b5a7a8b5SBram Moolenaar * - Ken Takata 7d7ccc4d8SBram Moolenaar * - Yasuhiro Matsumoto 8b5a7a8b5SBram Moolenaar * 9b5a7a8b5SBram Moolenaar * Copyright (C) 2013 MURAOKA Taro <[email protected]> 10b5a7a8b5SBram Moolenaar * THIS FILE IS DISTRIBUTED UNDER THE VIM LICENSE. 11b5a7a8b5SBram Moolenaar */ 12b5a7a8b5SBram Moolenaar 13b5a7a8b5SBram Moolenaar #ifndef GUI_DWRITE_H 14b5a7a8b5SBram Moolenaar #define GUI_DWRITE_H 15b5a7a8b5SBram Moolenaar 16b5a7a8b5SBram Moolenaar #ifdef __cplusplus 17b5a7a8b5SBram Moolenaar extern "C" { 18b5a7a8b5SBram Moolenaar #endif 19b5a7a8b5SBram Moolenaar 20b5a7a8b5SBram Moolenaar typedef struct DWriteContext DWriteContext; 21b5a7a8b5SBram Moolenaar 22b5a7a8b5SBram Moolenaar typedef struct DWriteRenderingParams { 23b5a7a8b5SBram Moolenaar float gamma; 24b5a7a8b5SBram Moolenaar float enhancedContrast; 25b5a7a8b5SBram Moolenaar float clearTypeLevel; 26b5a7a8b5SBram Moolenaar /* 27b5a7a8b5SBram Moolenaar * pixelGeometry: 28b5a7a8b5SBram Moolenaar * 0 - DWRITE_PIXEL_GEOMETRY_FLAT 29b5a7a8b5SBram Moolenaar * 1 - DWRITE_PIXEL_GEOMETRY_RGB 30b5a7a8b5SBram Moolenaar * 2 - DWRITE_PIXEL_GEOMETRY_BGR 31b5a7a8b5SBram Moolenaar */ 32b5a7a8b5SBram Moolenaar int pixelGeometry; 33b5a7a8b5SBram Moolenaar /* 34b5a7a8b5SBram Moolenaar * renderingMode: 35b5a7a8b5SBram Moolenaar * 0 - DWRITE_RENDERING_MODE_DEFAULT 36b5a7a8b5SBram Moolenaar * 1 - DWRITE_RENDERING_MODE_ALIASED 37b5a7a8b5SBram Moolenaar * 2 - DWRITE_RENDERING_MODE_CLEARTYPE_GDI_CLASSIC 38b5a7a8b5SBram Moolenaar * 3 - DWRITE_RENDERING_MODE_CLEARTYPE_GDI_NATURAL 39b5a7a8b5SBram Moolenaar * 4 - DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL 40b5a7a8b5SBram Moolenaar * 5 - DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL_SYMMETRIC 41b5a7a8b5SBram Moolenaar * 6 - DWRITE_RENDERING_MODE_OUTLINE 42b5a7a8b5SBram Moolenaar */ 43b5a7a8b5SBram Moolenaar int renderingMode; 44b5a7a8b5SBram Moolenaar /* 45b5a7a8b5SBram Moolenaar * antialiasMode: 46b5a7a8b5SBram Moolenaar * 0 - D2D1_TEXT_ANTIALIAS_MODE_DEFAULT 47b5a7a8b5SBram Moolenaar * 1 - D2D1_TEXT_ANTIALIAS_MODE_CLEARTYPE 48b5a7a8b5SBram Moolenaar * 2 - D2D1_TEXT_ANTIALIAS_MODE_GRAYSCALE 49b5a7a8b5SBram Moolenaar * 3 - D2D1_TEXT_ANTIALIAS_MODE_ALIASED 50b5a7a8b5SBram Moolenaar */ 51b5a7a8b5SBram Moolenaar int textAntialiasMode; 52b5a7a8b5SBram Moolenaar } DWriteRenderingParams; 53b5a7a8b5SBram Moolenaar 54b5a7a8b5SBram Moolenaar void DWrite_Init(void); 55b5a7a8b5SBram Moolenaar void DWrite_Final(void); 56b5a7a8b5SBram Moolenaar 57b5a7a8b5SBram Moolenaar DWriteContext *DWriteContext_Open(void); 5892467d33SBram Moolenaar void DWriteContext_BindDC(DWriteContext *ctx, HDC hdc, const RECT *rect); 59b5a7a8b5SBram Moolenaar void DWriteContext_SetFont(DWriteContext *ctx, HFONT hFont); 60b5a7a8b5SBram Moolenaar void DWriteContext_DrawText( 61b5a7a8b5SBram Moolenaar DWriteContext *ctx, 62b5a7a8b5SBram Moolenaar const WCHAR *text, 63b5a7a8b5SBram Moolenaar int len, 64b5a7a8b5SBram Moolenaar int x, 65b5a7a8b5SBram Moolenaar int y, 66b5a7a8b5SBram Moolenaar int w, 67b5a7a8b5SBram Moolenaar int h, 68b5a7a8b5SBram Moolenaar int cellWidth, 69d7ccc4d8SBram Moolenaar COLORREF color, 70d7ccc4d8SBram Moolenaar UINT fuOptions, 7192467d33SBram Moolenaar const RECT *lprc, 7292467d33SBram Moolenaar const INT *lpDx); 7392467d33SBram Moolenaar void DWriteContext_FillRect(DWriteContext *ctx, const RECT *rc, COLORREF color); 7492467d33SBram Moolenaar void DWriteContext_DrawLine(DWriteContext *ctx, int x1, int y1, int x2, int y2, 7592467d33SBram Moolenaar COLORREF color); 7692467d33SBram Moolenaar void DWriteContext_SetPixel(DWriteContext *ctx, int x, int y, COLORREF color); 77*a338adcfSBram Moolenaar void DWriteContext_Scroll(DWriteContext *ctx, int x, int y, const RECT *rc); 78d7ccc4d8SBram Moolenaar void DWriteContext_Flush(DWriteContext *ctx); 79b5a7a8b5SBram Moolenaar void DWriteContext_Close(DWriteContext *ctx); 80b5a7a8b5SBram Moolenaar 81b5a7a8b5SBram Moolenaar void DWriteContext_SetRenderingParams( 82b5a7a8b5SBram Moolenaar DWriteContext *ctx, 83b5a7a8b5SBram Moolenaar const DWriteRenderingParams *params); 84b5a7a8b5SBram Moolenaar 85b5a7a8b5SBram Moolenaar DWriteRenderingParams *DWriteContext_GetRenderingParams( 86b5a7a8b5SBram Moolenaar DWriteContext *ctx, 87b5a7a8b5SBram Moolenaar DWriteRenderingParams *params); 88b5a7a8b5SBram Moolenaar 89b5a7a8b5SBram Moolenaar #ifdef __cplusplus 90b5a7a8b5SBram Moolenaar } 91b5a7a8b5SBram Moolenaar #endif 92b5a7a8b5SBram Moolenaar #endif/*GUI_DWRITE_H*/ 93