Nanovg 函数使用
1. Color常用工具:
1 |
返回指定整数RGB的颜色,RGB范围0-255. |
NVGcolor nvgRGB(unsigned char r, unsigned char g, unsigned char b); |
2 |
返回指定小数RGB的颜色,RGB范围0-1.0 |
NVGcolor nvgRGBf(float r, float g, float b); |
3 |
返回指定整数RGB和透明度的颜色 |
NVGcolor nvgRGBA(unsigned char r, unsigned char g, unsigned char b, unsigned char a); |
4 |
返回指定浮点数RGB和透明度的颜色 |
NVGcolor nvgRGBAf(float r,float g, float b,float a); |
5 |
返回颜色c0和颜色c1之间的中间色,0<=u<=1 |
NVGcolor nvgLerpRGBA(NVGcolor c0, NVGcolor c1, float u); |
6 |
返回颜色为c0并用a指定透明度。0<=a<=255 |
NVGcolor nvgTransRGBA(NVGcolor c0, unsigned char a); |
7 |
返回颜色为c0并用a指定透明度。0<=a<=1.0 |
NVGcolor nvgTransRGBAf(NVGcolor c0, float a); |
8 |
返回指定小数HSL的颜色,HSL范围0-1.0 |
NVGcolor nvgHSL(float h, float s, float l); |
9 |
返回指定浮点数HSL和透明度的颜色,0<=a<=255 |
NVGcolor nvgHSLA(float h, float s, float l, unsigned char a); |
2. 渲染模式
1 |
指定笔刷模式为具体的颜色。 |
void nvgStrokeColor(NVGcontext* ctx, NVGcolor color); |
2 |
指定笔刷模式为paint,paint可以是渐变也可以是其他模式。 |
void nvgStrokePaint(NVGcontext* ctx, NVGpaint paint); |
3 |
指定填充为具体的颜色。 |
void nvgFillColor(NVGcontext* ctx, NVGcolor color); |
4 |
指定填充模式为paint,paint可以是渐变也可以是其他模式。 |
void nvgFillPaint(NVGcontext* ctx, NVGpaint paint); |
5 |
指定笔刷在拐角处是否为斜面。 |
void nvgMiterLimit(NVGcontext* ctx,float limit); |
6 |
指定笔刷的宽度。 |
void nvgStrokeWidth(NVGcontext* ctx,float size); |
7 |
设置笔画的末端的类型(NVG_BUTT | NVG_ROUND | VNG_SQUARE) |
void nvgLineCap(NVGcontext* ctx,int cap); |
8 |
指定连接部分的类型 (NVG_MITER | NVG_ROUND | NVG_BEVEL) |
void nvgLineJoin(NVGcontext* ctx,int join); |
9 |
指定全局的Alpha值。 |
void nvgGlobalAlpha(NVGcontext* ctx,float alpha); |
3. 变换
变换有3种:缩放(scal)、倾斜(skew)、平移(translate)。在nanovg中使用了一个变换矩阵(第二个矩阵只是说明在程序中对应的a、b、c……等参数):
[sx kx tx] [a c e]
[ky xy ty] ==》 [b d f]
[ 0 0 1] [0 0 1],
其中sx、sy为缩放,kx、ky为歪斜,tx、ty为平移。后面的[0 0 1]不做存储。