Skip to content
Ever-Never edited this page Jul 9, 2018 · 1 revision

grapha API 主要提供画几何图形和贴图的API,其中几何图形是纯算法实现,不需要占用太多的RAM,贴图是根据之前解码出来的图片画到对应的Canvas上的过程,所以大致分为两种.最常用的是后者.

画像素

/*
 * Function    : libaroma_draw_pixel
 * Return Value: byte
 * Descriptions: draw pixel
 */
byte libaroma_draw_pixel(
    LIBAROMA_CANVASP dest,
    int dx, int dy,
    word color,
    byte alpha
  );

参数说明

参数 说明
dest 要被画的画布
dx 被画的位置x坐标
dy 被画的位置y坐标
color 被画位置的颜色
alpha 被画位置的alpha(现在好像没用到)

画方块

/*
 * Function    : libaroma_draw_rect
 * Return Value: byte
 * Descriptions: draw rectangle
 */
byte libaroma_draw_rect(
    LIBAROMA_CANVASP dst,
    int x, int y, int w, int h,
    word color, byte alpha);

参数说明

参数 说明
dst 同上
x 同上
y 同上
w 方块的宽度
h 方块的高度
color 颜色
alpha alpha值

画圆形

/*
 * Function    : libaroma_draw_circle
 * Return Value: byte
 * Descriptions: draw filled circle
 */
byte libaroma_draw_circle(
    LIBAROMA_CANVASP dst, 
    word color,
    int dx, int dy,
    int sz,
    byte alpha);

参数说明

参数 说明
dst 同上
color 颜色
dx 圆心x坐标
dy 圆心y坐标
sz 半径(?)
alpha 同上

画直线

/*
 * Function    : libaroma_draw_line_width
 * Return Value: byte
 * Descriptions: draw line with width
 */
byte libaroma_draw_line_width(
  LIBAROMA_CANVASP dest,
  float x1, float y1, float x2, float y2,
  float wd,
  word color,
  byte alpha,
  byte is_mask,
  float aliasing);

参数说明

参数 说明
dest 同上
x1 第一点的x坐标
y1 第一点的y坐标
x2 第二点的x坐标
y2 第二点的y坐标
color 颜色
wd 线的宽度
alpha 同上
is_mask (暂时没搞明白)
aliasing 抗锯齿参数

画圆弧

/*
 * Function    : libaroma_draw_arc
 * Return Value: byte
 * Descriptions: draw arc into canvas
 */
byte libaroma_draw_arc(
  LIBAROMA_CANVASP dest,
  float dx, float dy,
  float radius_w, float radius_h, float width,
  float start_angle, float end_angle,
  word color,byte alpha,byte is_mask,float aliasing
);

参数说明

参数 说明
dest 同上
dx 圆弧的中心坐标x
dy 圆弧的中心坐标y
radius_w 圆弧的半径宽度
radius_h 圆弧的半径高度
width 圆弧的宽度
start_angle 开始角度(逆时针)
end_angle 结束角度
color 同上
alpha 同上
is_mask 同上
aliasing 抗锯齿参数

贴 Canvas

/*
 * Function    : libaroma_draw_ex2
 * Return Value: byte
 * Descriptions: canvas drawing
 */
byte libaroma_draw_ex2(
  LIBAROMA_CANVASP dst,
  LIBAROMA_CANVASP src,
  int dx, int dy,
  int sx, int sy,
  int sw, int sh,
  byte draw_flags,
  byte opacity,
  byte ismask,
  word maskcolor
);

参数说明

参数 说明
dst 同上
src copy的数据源
dx 被copy到的x位置
dy 被copy到的y位置
sx copy的开始x位置
sy copy的开始y位置
sw copy的src 的宽度
sh copy的src 的高度
draw_flags 未知现在
opacity 同上
ismask 同上
maskcolor 颜色
Clone this wiki locally