gg第三十六课gsv_text_outline渲染环绕的字符

,gg: rendering_buffer, rbuf=rbuf_window ();

,,gg: pixfmt_bgr24 pixf (rbuf);


,,typedef gg: renderer_baserenderer_base_type;

,,renderer_base_type renb (pixf);


,,typedef gg: renderer_scanline_bin_solidrenderder_scanline_type;

,,renderder_scanline_type rensl (renb);


,,gg: rasterizer_scanline_aa<比;ras;

,,gg: scanline_u8 sl;

,,ras.reset ();


,,renb.clear (gg:: rgba8 (255255255),


,,gg:椭圆厄尔(400、100、100、100);

,,gg: conv_stroke中风(魔法);

,,ras.add_path(中风);

,,gg:: render_scanlines_aa_solid (ras, sl, renb gg: rgba8 (255, 0, 0));

,,ras.reset ();


,,gg: gsv_text txt;

,,gg: trans_single_path transPath;

,,transPath.add_path(魔法);

,,gg: gsv_text_outlinetxtOutLine (txt transPath);


,,txt.flip(真正);

,,txt.size (10);

,,三种。start_point (100、-15);

,,txt.space(5);//字符之间的间距

,,txt.text (“http://fengyuzaitu.blog.51cto.com”);

,,ras.add_path (txtOutLine);

,,gg:: render_scanlines_aa_solid (ras, sl, renb gg: rgba8 (255, 0, 0));

,,ras.reset ();


注意:

1 start_point指定的方向不再是真实的屏幕坐标,而是相对于顶点源的起始渲染坐标,当前渲染的椭圆是从椭圆的最右边的点,顺时针开始渲染,第一个参数可以理解为在渲染的弧线上距离起点多远的路程之后开始渲染字符,其中trans_single_path提供了total_length计算路径的长度,可以方便部署每一个字符所在的位置(相对于起点),第二个参数是指定字符偏离路径的宽度,正负数值分别是在内测还是外侧进行偏离


gg第三十六课gsv_text_outline渲染环绕的字符