<meta http-equiv="Content-Type" content="text/html; charset=GB18030"><p style="font-family: Arial; margin: 0px;"><span style="font-family: "lucida Grande", Verdana, "Microsoft YaHei"; font-variant-numeric: normal; font-variant-east-asian: normal; line-height: 25.9875px; text-align: justify; background-color: rgb(247, 248, 250);"><font size="4" face="黑体" style="line-height: 30.6px;"><b>The same code, in Windows environment can be bold, but not in macOS.</b></font></span></p><div style="font-family: "lucida Grande", Verdana, "Microsoft YaHei";"><span style="font-variant-numeric: normal; font-variant-east-asian: normal; line-height: 25.9875px; text-align: justify; background-color: rgb(247, 248, 250);"><div><span style="font-variant-numeric: normal; font-variant-east-asian: normal; line-height: 25.9875px;"><font size="4" face="黑体" style="line-height: 30.6px;"><b>The function used <font editorwarp__="1" style="line-height: 30.6px; display: inline;"></font>to set the bold is:</b></font></span></div><div><b style="font-family: 宋体; font-size: large;">cairo_ft_font_face_set_synthesize(ct, CAIRO_FT_SYNTHESIZE_BOLD);</b></div><div><font face="宋体" size="4" style="line-height: 30.6px;"><br></font></div><div><b>The complete test case code is as follows:</b></div><div><div><font face="宋体" size="2" style="line-height: 22.1px;">void TestFontBold( bool bold)</font></div><div><font face="宋体" size="2" style="line-height: 22.1px;">{</font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><span style="white-space: pre;">   </span>int bmp_w = 80;<span style="white-space: pre;">    </span>int bmp_h = 32;</font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><span style="white-space: pre;">    </span>int nSizebuff = bmp_w * bmp_h * 3;</font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><span style="white-space: pre;"> </span>unsigned char * buffer = NULL;</font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><span style="white-space: pre;">     </span>buffer = new unsigned char[nSizebuff]; memset(buffer, 0, nSizebuff);</font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><br></font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><span style="white-space: pre;">     </span>Oint32 stride = cairo_format_stride_for_width(CAIRO_FORMAT_ARGB32, bmp_w);</font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><span style="white-space: pre;"> </span>cairo_surface_t* cs = cairo_image_surface_create_for_data(buffer, CAIRO_FORMAT_ARGB32, bmp_w, bmp_h, stride);</font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><span style="white-space: pre;">      </span>cairo_t* c = cairo_create(cs);</font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><br></font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><span style="white-space: pre;">   </span>//set background<span style="white-space: pre;">   </span> </font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><span style="white-space: pre;">     </span>cairo_set_source_rgba(c, 0, 0, 0, 0);</font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><span style="white-space: pre;">      </span>cairo_paint(c);</font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><br></font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><span style="white-space: pre;">  </span>//set font size; color;</font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><span style="white-space: pre;">    </span>int font_size = 12;</font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><span style="white-space: pre;">        </span>cairo_set_source_rgb(c, 1, 0, 0);</font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><span style="white-space: pre;">  </span>cairo_set_font_size(c, font_size);</font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><br></font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><span style="white-space: pre;">       </span>FT_Library FTLib = NULL;</font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><span style="white-space: pre;">   </span>FT_Error status = FT_Init_FreeType(&FTLib);</font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><span style="white-space: pre;">    </span>if (status != 0) {</font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><span style="white-space: pre;">         </span>return;</font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><span style="white-space: pre;">    </span>}</font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><span style="white-space: pre;">  </span>FT_Face* face = new FT_Face;</font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><span style="white-space: pre;">       </span>status = FT_New_Face(FTLib, "../allfonts/1.ttf", 0, face);</font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><span style="white-space: pre;">       </span>if (status != 0) {</font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><span style="white-space: pre;">         </span>return;</font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><span style="white-space: pre;">    </span>}</font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><span style="white-space: pre;">  </span>cairo_t *g_c = (cairo_t *)c;</font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><span style="white-space: pre;">       </span>cairo_font_face_t *ct = cairo_ft_font_face_create_for_ft_face(*face, 0);</font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><span style="white-space: pre;">   </span>if (bold) {</font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><span style="white-space: pre;">                </span>cairo_ft_font_face_set_synthesize(ct, CAIRO_FT_SYNTHESIZE_BOLD);</font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><span style="white-space: pre;">   </span>}</font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><span style="white-space: pre;">  </span>cairo_set_font_face(g_c, ct);</font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><span style="white-space: pre;">      </span>cairo_font_face_destroy(ct);</font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><br></font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><span style="white-space: pre;">     </span>//get textextents</font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><span style="white-space: pre;">  </span>string str = "TestIsBold";</font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><span style="white-space: pre;">       </span>//GB2312ToUTF8(str);</font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><br></font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><span style="white-space: pre;">     </span>//close antialias</font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><span style="white-space: pre;">  </span>cairo_font_options_t *pOption = cairo_font_options_create();</font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><span style="white-space: pre;">       </span>cairo_get_font_options(g_c, pOption);</font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><span style="white-space: pre;">      </span>cairo_font_options_set_antialias(pOption, CAIRO_ANTIALIAS_NONE);</font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><span style="white-space: pre;">   </span>cairo_set_font_options(g_c, pOption);</font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><span style="white-space: pre;">      </span>cairo_font_options_destroy(pOption);</font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><br></font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><span style="white-space: pre;">     </span>//set pos</font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><span style="white-space: pre;">  </span>cairo_text_extents_t ttCurStr;</font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><span style="white-space: pre;">     </span>cairo_text_extents(c, str.c_str(), &ttCurStr);</font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><span style="white-space: pre;"> </span>cairo_move_to(c, 0, ttCurStr.height + (bmp_h - ttCurStr.height) / 2.0);</font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><br></font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><span style="white-space: pre;">  </span>//show text</font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><span style="white-space: pre;">        </span>cairo_show_text(c, str.c_str());</font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><br></font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><span style="white-space: pre;"> </span>//Save as a PNG image to see the effect</font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><span style="white-space: pre;">    </span>cairo_surface_write_to_png(cs, "123---.png");</font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><br></font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><span style="white-space: pre;">  </span>cairo_destroy(c);</font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><span style="white-space: pre;">  </span>cairo_surface_destroy(cs);</font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><br></font></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><span style="white-space: pre;">       </span>delete buffer; buffer = NULL;</font></div><div><font face="宋体" size="2" style="line-height: 22.1px;">}</font></div></div><div><font face="宋体" size="2" style="line-height: 22.1px;"><br></font></div></span></div>