Mercurial > vim
view src/gui_dwrite.h @ 34255:ccd1a35157ad v9.1.0068
patch 9.1.0068: Visual highlighting can still be improved
Commit: https://github.com/vim/vim/commit/59bafc8171b08cf326ed40ccb4ee917f9643290e
Author: Maxim Kim <habamax@gmail.com>
Date: Thu Feb 1 21:07:51 2024 +0100
patch 9.1.0068: Visual highlighting can still be improved
Problem: Visual highlighting can still be improved
Solution: Update Visual highlighting for 8 color terminals,
use uniform grey highlighting for dark and light bg
(Maxim Kim)
Update terminal Visual
1. Use `ctermbg=Grey ctermfg=Black` for both dark and light
This uniforms Visual highlighting between default dark and light colors
And should work for vim usually detecting light background for terminals
with black/dark background colors.
Previously used `ctermfg=White` leaks `cterm=bold` if available colors
are less than 16.
2. Use `term=reverse cterm=reverse ctermbg=NONE ctermfg=NONE`
for terminals reporting less than 8 colors available
If the terminal has less than 8 colors, grey just doesn't work right
closes: #13940
Signed-off-by: Maxim Kim <habamax@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Thu, 01 Feb 2024 21:15:06 +0100 |
parents | 808625d4b71b |
children |
line wrap: on
line source
/* vi:set ts=8 sts=4 sw=4 noet: */ /* * Author: MURAOKA Taro <koron.kaoriya@gmail.com> * * Contributors: * - Ken Takata * - Yasuhiro Matsumoto * * 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_BindDC(DWriteContext *ctx, HDC hdc, const RECT *rect); void DWriteContext_SetFont(DWriteContext *ctx, HFONT hFont); void DWriteContext_DrawText( DWriteContext *ctx, const WCHAR *text, int len, int x, int y, int w, int h, int cellWidth, COLORREF color, UINT fuOptions, const RECT *lprc, const INT *lpDx); void DWriteContext_FillRect(DWriteContext *ctx, const RECT *rc, COLORREF color); void DWriteContext_DrawLine(DWriteContext *ctx, int x1, int y1, int x2, int y2, COLORREF color); void DWriteContext_SetPixel(DWriteContext *ctx, int x, int y, COLORREF color); void DWriteContext_Scroll(DWriteContext *ctx, int x, int y, const RECT *rc); void DWriteContext_Flush(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*/