在使用 cairo 绘制文本时,发现它不能绘制多行文本,搜索到官网 [cairo] automatic multi-line text?,它说需要使用 Pango库,这就痛苦了。
于是研究了一下cairo源码,自己实现了一下。附上函数:
#define HAVE_STDINT_H 1
#define HAVE_CONFIG_H 1
#include "cairo/cairo-private.h"
#include "cairo/cairo-compiler-private.h"
#include "cairo/cairo-error-private.h"
#include "cairo/cairo-fontconfig-private.h"
#include "cairo/cairo-scaled-font-private.h"
#include "cairo/cairoint.h"
#include "cairo/cairo-backend-private.h"
void CCairo::show_multiline_utf8(const char* utf8, int utf8_len, LPRECT lprc, const char* szFontname, int nFontSize, DWORD dtFormat, bool bold)
{
cairo_text_extents_t extents;
cairo_status_t status;
cairo_glyph_t* glyphs = NULL, * last_glyph = NULL;
cairo_text_cluster_t* c

最低0.47元/天 解锁文章

3278

被折叠的 条评论
为什么被折叠?



