48 #include "sysconfig.h" 56 #ifdef GSC_COMP_ENABLE_FATFS 65 static short scr_width;
66 static short scr_height;
71 static void init_graph_com(
void)
77 frect.right = scr_width-3;
78 frect.bottom = scr_height-3;
81 crect.right = scr_width-4;
82 crect.bottom = scr_height-4;
86 static int drawmode(
int argc,
uchar *argv[]);
100 .usage_str =
"<mode(0|1|2)>",
101 .manual_str =
"Set draw mode(0:NORMAL,1:REVERSE,2:FOREONLY)" 104 static int drawmode(
int argc,
uchar *argv[])
107 print_command_usage(&com_graph_drawmode);
117 static int forecolor(
int argc,
uchar *argv[]);
124 .command = forecolor,
125 .usage_str =
"<r(0-255)> <g(0-255)> <b(0-255)>",
126 .manual_str =
"Set fore color" 129 static int forecolor(
int argc,
uchar *argv[])
134 print_command_usage(&com_graph_forecolor);
146 static int backcolor(
int argc,
uchar *argv[]);
153 .command = backcolor,
154 .usage_str =
"<r(0-255)> <g(0-255)> <b(0-255)>",
155 .manual_str =
"Set back color" 158 static int backcolor(
int argc,
uchar *argv[])
163 print_command_usage(&com_graph_backcolor);
175 static int cls(
int argc,
uchar *argv[])
188 .manual_str =
"Clear screen" 192 static int point(
int argc,
uchar *argv[]);
200 .usage_str =
"<x> <y>",
201 .manual_str =
"Draw point" 204 static int point(
int argc,
uchar *argv[])
207 print_command_usage(&com_graph_point);
217 static int hline(
int argc,
uchar *argv[]);
225 .usage_str =
"<x> <y> <w>",
226 .manual_str =
"Draw horizontal line" 229 static int hline(
int argc,
uchar *argv[])
232 print_command_usage(&com_graph_hline);
242 static int vline(
int argc,
uchar *argv[]);
250 .usage_str =
"<x> <y> <h>",
251 .manual_str =
"Draw virtical line" 254 static int vline(
int argc,
uchar *argv[])
257 print_command_usage(&com_graph_vline);
267 static int drawrect(
int argc,
uchar *argv[]);
275 .usage_str =
"<x> <y> <xe> <ye>",
276 .manual_str =
"Draw rectangle" 279 static int drawrect(
int argc,
uchar *argv[])
284 print_command_usage(&com_graph_rect);
300 static int fillrect(
int argc,
uchar *argv[]);
308 .usage_str =
"<x> <y> <xe> <ye>",
309 .manual_str =
"Draw fill rectangle" 312 static int fillrect(
int argc,
uchar *argv[])
317 print_command_usage(&com_graph_fillrect);
332 static int roundrect(
int argc,
uchar *argv[]);
339 .command = roundrect,
340 .usage_str =
"<x> <y> <xe> <ye> <r>",
341 .manual_str =
"Draw round rectangle" 344 static int roundrect(
int argc,
uchar *argv[])
350 print_command_usage(&com_graph_roundrect);
366 static int roundfillrect(
int argc,
uchar *argv[]);
372 .
name =
"roundfrect",
373 .command = roundfillrect,
374 .usage_str =
"<x> <y> <xe> <ye> <r>",
375 .manual_str =
"Draw round fill rectangle" 378 static int roundfillrect(
int argc,
uchar *argv[])
384 print_command_usage(&com_graph_roundfillrect);
400 static int cliprect(
int argc,
uchar *argv[]);
408 .usage_str =
"[<x> <y> <xe> <ye>]",
409 .manual_str =
"Set clipping area" 412 static int cliprect(
int argc,
uchar *argv[])
420 }
else if(argc < 5) {
421 print_command_usage(&com_graph_cliprect);
436 static int drawline(
int argc,
uchar *argv[]);
444 .usage_str =
"<x> <y> <xe> <ye>",
445 .manual_str =
"Set line" 448 static int drawline(
int argc,
uchar *argv[])
453 print_command_usage(&com_graph_line);
468 #ifdef GSC_COMP_ENABLE_FONTS 471 static int setfont(
int argc,
uchar *argv[]);
479 .usage_str =
"<font_name>",
480 .manual_str =
"Set font" 483 static int setfont(
int argc,
uchar *argv[])
490 print_command_usage(&com_graph_setfont);
494 for(i=0; i<fc; i++) {
503 tprintf(
"Font name \"%s\" not found.\n", argv[1]);
510 static int proportional(
int argc,
uchar *argv[]);
517 .command = proportional,
518 .usage_str =
"<0:FIXED | 1:PROPORT>",
519 .manual_str =
"Set font draw mode" 522 static int proportional(
int argc,
uchar *argv[])
525 print_command_usage(&com_graph_proportional);
535 static int drawchar(
int argc,
uchar *argv[]);
543 .usage_str =
"<x> <y> <char>",
544 .manual_str =
"Draw charctor" 547 static int drawchar(
int argc,
uchar *argv[])
550 print_command_usage(&com_graph_drawchar);
560 static int drawcode(
int argc,
uchar *argv[]);
568 .usage_str =
"<x> <y> <char_code>",
569 .manual_str =
"Draw charctor code charctor" 572 static int drawcode(
int argc,
uchar *argv[])
575 print_command_usage(&com_graph_charcode);
585 static int drawstr(
int argc,
uchar *argv[]);
593 .usage_str =
"<x> <y> <strings> [width]",
594 .manual_str =
"Draw charctor code charctor" 597 static int drawstr(
int argc,
uchar *argv[])
600 print_command_usage(&com_graph_drawstr);
606 (
unsigned char *)argv[3],
dstoi(argv[4]));
615 static int fontpreview(
int argc,
uchar *argv[]);
621 .
name =
"fontpreview",
622 .command = fontpreview,
623 .usage_str =
"[<x> <y>]",
624 .manual_str =
"Draw font preview" 627 static int fontpreview(
int argc,
uchar *argv[])
629 short sx = 0, sy = 0;
635 unsigned short sc =
' ';
653 for(ch = sc; ch <=
'~'; ch ++) {
655 if(x > (width - fw)) {
667 #endif // GSC_COMP_ENABLE_FONTS 669 static int circle(
int argc,
uchar *argv[]);
677 .usage_str =
"<x> <y> <r>",
678 .manual_str =
"Draw circle" 681 static int circle(
int argc,
uchar *argv[])
684 print_command_usage(&com_graph_circle);
694 static int fcircle(
int argc,
uchar *argv[]);
700 .
name =
"fillcircle",
702 .usage_str =
"<x> <y> <r>",
703 .manual_str =
"Draw fill circle" 706 static int fcircle(
int argc,
uchar *argv[])
709 print_command_usage(&com_graph_fillcircle);
719 static int ellipse(
int argc,
uchar *argv[]);
727 .usage_str =
"<x> <y> <rx> <ry>",
728 .manual_str =
"Draw ellipse" 731 static int ellipse(
int argc,
uchar *argv[])
734 print_command_usage(&com_graph_ellipse);
745 static int fellipse(
int argc,
uchar *argv[]);
751 .
name =
"fillellipse",
753 .usage_str =
"<x> <y> <rx> <ry>",
754 .manual_str =
"Draw fill ellipse" 757 static int fellipse(
int argc,
uchar *argv[])
760 print_command_usage(&com_graph_fillellipse);
771 static int scrollv(
int argc,
uchar *argv[]);
779 .usage_str =
"<x> <y> <xe> <ye> <v>",
780 .manual_str =
"Scroll the area virtically" 783 static int scrollv(
int argc,
uchar *argv[])
789 print_command_usage(&com_graph_scrollv);
805 #ifdef GSC_COMP_ENABLE_FATFS 807 #ifdef GSC_LIB_ENABLE_PICOJPEG 811 static int jpeg(
int argc,
uchar *argv[]);
819 .usage_str =
"<file_name> [<x> <y>]",
820 .manual_str =
"Draw JPEG file" 823 static int jpeg(
int argc,
uchar *argv[])
831 static pjpeg_image_info_t jpeginfo;
834 print_command_usage(&com_graph_jpeg);
844 fd =
open_file((
unsigned char *)argv[1], FA_READ);
846 tprintf(
"Cannot open file \"%s\".\n", argv[1]);
852 tprintf(
"x = %d, y = %d\n", x, y);
854 get_jpeg_file_info(fd, &jpeginfo, 0);
855 tprintf(
"Width = %d, Height = %d\n", jpeginfo.m_width, jpeginfo.m_height);
857 if((jpeginfo.m_width > GSC_GRAPHICS_DISPLAY_WIDTH) || (jpeginfo.m_height > GSC_GRAPHICS_DISPLAY_HEIGHT)) {
859 fd =
open_file((
unsigned char *)argv[1], FA_READ);
860 get_jpeg_file_info(fd, &jpeginfo, 1);
864 if(flg_posfix == 0) {
865 x = (GSC_GRAPHICS_DISPLAY_WIDTH - (jpeginfo.m_width / denomi)) / 2;
866 y = (GSC_GRAPHICS_DISPLAY_HEIGHT - (jpeginfo.m_height / denomi)) / 2;
877 #ifdef GSC_LIB_ENABLE_LIBPNG 881 static int png(
int argc,
uchar *argv[]);
889 .usage_str =
"<file_name> [<x> <y>]",
890 .manual_str =
"Draw PNG file" 893 static int png(
int argc,
uchar *argv[])
905 print_command_usage(&com_graph_png);
915 fd =
open_file((
unsigned char *)argv[1], FA_READ);
917 tprintf(
"Cannot open file \"%s\".\n", argv[1]);
923 tprintf(
"x = %d, y = %d\n", x, y);
925 rt = get_png_file_info(fd, &width, &height);
927 tprintf(
"PNG decode error(%d)\n", rt);
930 tprintf(
"Width = %d, Height = %d\n", width, height);
932 if(flg_posfix == 0) {
933 x = (GSC_GRAPHICS_DISPLAY_WIDTH - width) / 2;
934 y = (GSC_GRAPHICS_DISPLAY_HEIGHT - height) / 2;
940 draw_image(x, y, width, height, image, width);
949 #endif // GSC_LIB_ENABLE_LIBPNG 951 #endif // GSC_COMP_ENABLE_FATFS 954 static int vertex4_region(
int argc,
uchar *argv[]);
961 .command = vertex4_region,
962 .usage_str =
"<x0> <y0> <x1> <y1> <x2> <y2> <x3> <y3>",
963 .manual_str =
"Draw 4 vertex porigon" 966 static int vertex4_region(
int argc,
uchar *argv[])
969 print_command_usage(&com_graph_vertex4);
982 static int display_frame(
int argc,
uchar *argv[]);
989 .command = display_frame,
990 .usage_str =
"[frame_num(0|1)]",
991 .manual_str =
"Set display frame" 994 static int display_frame(
int argc,
uchar *argv[])
1006 static int draw_frame(
int argc,
uchar *argv[]);
1012 .
name =
"drawframe",
1013 .command = draw_frame,
1014 .usage_str =
"[frame_num(0|1)]",
1015 .manual_str =
"Set draw frame" 1018 static int draw_frame(
int argc,
uchar *argv[])
1030 static int sector(
int argc,
uchar *argv[]);
1038 .usage_str =
"<x> <y> <er> <ir> <q>",
1039 .manual_str =
"Draw sector" 1042 static int sector(
int argc,
uchar *argv[])
1045 print_command_usage(&com_graph_sector);
1057 static int enlargedbitmap(
int argc,
uchar *argv[]);
1063 .
name =
"enlbitmap",
1064 .command = enlargedbitmap,
1065 .usage_str =
"<x> <y> <r>",
1066 .manual_str =
"Draw enlarged bitmap sample data" 1069 static int enlargedbitmap(
int argc,
uchar *argv[])
1074 print_command_usage(&com_graph_enlbitmap);
1106 #ifdef GSC_COMP_ENABLE_FONTS 1119 #ifdef GSC_COMP_ENABLE_FATFS 1120 #ifdef GSC_LIB_ENABLE_PICOJPEG 1123 #ifdef GSC_LIB_ENABLE_LIBPNG 1137 .manual_str =
"Graphics operation commands",
1138 .sublist = com_grap_list
void draw_point(short x, short y)
点を描画する
unsigned char uchar
GadgetSeedの文字(列)は unsigned char 型となる
static const struct st_shell_command com_graph_dispframe
表示フレームを設定する
static const struct st_shell_command com_graph_forecolor
フォアカラーを設定する
char name[MAX_FONTNAMELEN]
フォントセット名
t_ssize seek_file(int fd, t_ssize offset, int whence)
ファイルアクセス位置の設定
const char * fontset_name(int num)
フォント名を取得する
void clear_clip_rect(void)
クリッピングエリアを無効にする
unsigned short font_height(void)
カレントフォントセットの文字高さを取得する
static const struct st_shell_command com_graph_line
直線を描画する
static const struct st_shell_command com_graph_sector
扇を描画する
static const struct st_shell_command com_graph_roundrect
角の丸い矩形を描画する
void draw_image(short px, short py, short width, short height, void *image, short dw)
イメージデータを描画する
static const struct st_shell_command com_graph_fillellipse
塗りつぶした楕円を描画する
void draw_round_rect(struct st_rect *rect, short r)
角の丸い矩形を描画する
void free_memory(void *ptr)
確保したメモリを開放する
画像表示デバイスドライバ ioctl 用マクロ定義
int fontset_count(void)
登録されているフォントセットの数を取得する
void draw_bitmap(short px, short py, struct st_bitmap *bitmap)
ビットマップデータを描画する
void set_backcolor(unsigned int color)
描画の背景色を設定する
void draw_sector(short x, short y, short er, short ir, char q)
扇形を描画する
void draw_str(short x, short y, uchar *str)
文字列を描画する
int close_file(int fd)
ファイルを閉じる
unsigned int dstou(uchar *str)
10進数文字列 unsigned int 変換
void set_font_drawmode(int mode)
フォント描画モードを設定する
static const struct st_shell_command com_graph_fontpreview
指定フォントの半角文字をプレビュー描画する
static const struct st_shell_command com_graph_rect
矩形を描画する
static const struct st_shell_command com_graph_fillcircle
塗りつぶした円を描画する
static const struct st_shell_command com_graph_point
点を描画する
void get_screen_info(short *width, short *height)
スクリーンのサイズ情報を取得する
void draw_line(short x, short y, short xe, short ye)
直線を描画する
void draw_h_line(short x, short y, short width)
水平線を描画する
void draw_rect(struct st_rect *rect)
矩形を描画する
static const struct st_shell_command com_graph_backcolor
バックカラーを設定する
void scroll_rect_v(struct st_rect *rect, short pixcel)
矩形範囲を縦方向にスクロールする
struct st_fontset * set_font_by_name(char *name)
カレントフォントセットをフォント名で設定する
struct st_fontset * get_fontset(void)
描画に使用されているフォントセット(カレントフォントセット)取得する
void draw_fill_rect(struct st_rect *rect)
塗りつぶした矩形を描画する
int dstoi(uchar *str)
10進数文字列 int 変換
int open_file(const uchar *path, int flags)
ファイルを開く
const struct st_shell_command com_graph_drawmode
描画モードを設定する
void * alloc_memory(unsigned int size)
メモリを確保する
int get_draw_frame(void)
描画するフレームバッファ番号を取得する
void set_draw_mode(unsigned char mode)
描画モードを設定する
void set_forecolor(unsigned int color)
描画の色を設定する
int get_display_frame(void)
表示しているフレームバッファ番号を取得する
unsigned short draw_char(short x, short y, ushort ch)
文字を描画する
void draw_fill_ellipse(short xc, short yc, short rx, short ry)
塗りつぶした楕円を描画する
static const struct st_shell_command com_graph_circle
円を描画する
int tprintf(const char *fmt,...)
簡易printf
static const struct st_shell_command com_graph_cliprect
クリッピング領域を設定する
int set_display_frame(int fnum)
表示するフレームバッファ番号を設定する
void set_clip_rect(struct st_rect *rect)
クリッピングエリアを矩形で指定する
static const struct st_shell_command com_graph_scrollv
縦方向に矩形領域をスクロースする
static const struct st_shell_command com_graph_drawframe
描画フレームを設定する
static const struct st_shell_command com_graph_fillrect
塗りつぶした矩形を描画する
int set_draw_frame(int fnum)
描画するフレームバッファ番号を設定する
void clear_screen(void)
画面を全て0で描画する
static const struct st_shell_command com_graph_setfont
描画するフォントを設定する
static const struct st_shell_command com_graph_roundfillrect
角の丸い塗りつぶした矩形を描画する
static const struct st_shell_command com_graph_hline
水平線を描画する
unsigned short font_width(unsigned short ch)
カレントフォントセットの文字幅を取得する
static const struct st_shell_command com_graph_drawstr
文字列を描画する
static const struct st_shell_command com_graph_proportional
フォントの描画モード(固定幅/プロポーショナル)を設定する
void draw_vertex4_region(short x0, short y0, short x1, short y1, short x2, short y2, short x3, short y3)
塗りつぶした4頂点の領域を描画する
int hstoi(uchar *str)
16進数文字列 int 変換
static const struct st_shell_command com_graph_drawchar
1文字描画する
void draw_fill_circle(short x0, short y0, short r)
塗りつぶした円を描画する
static const struct st_shell_command com_graph_enlbitmap
拡大したビットマップテストデータを描画する
void draw_enlarged_bitmap(short px, short py, struct st_bitmap *bitmap, int rate)
拡大したビットマップデータを描画する
static const struct st_shell_command com_graph_vertex4
4頂点ポリゴンを描画する
void draw_v_line(short x, short y, short height)
垂直線を描画する
#define SEEK_END
ファイルサイズに加算
void draw_circle(short x0, short y0, short r)
円を描画する
static const struct st_shell_command com_graph_cls
画面を初期化する
void draw_round_fill_rect(struct st_rect *rect, short r)
角の丸い塗りつぶした矩形を描画する
static const struct st_shell_command com_graph_vline
垂直線を描画する
unsigned short PIXEL_DATA
$gsc グラフィックデバイスは24ビットカラー
static const struct st_shell_command com_graph_ellipse
楕円を描画する
void draw_fixed_width_str(short x, short y, uchar *str, short width)
固定幅で文字列を描画する
static const struct st_shell_command com_graph_jpeg
JPEGファイルを描画する
void draw_ellipse(short xc, short yc, short rx, short ry)
楕円を描画する
static const struct st_shell_command com_graph_charcode
指定文字コードの文字を描画する