11 #include "sysconfig.h" 14 #define MAX_FRAMEBUF 2 16 #ifdef GSC_GRAPHICS_COLOR_16BIT 17 typedef unsigned short PIXEL_DATA;
19 #ifdef GSC_GRAPHICS_COLOR_24BIT 20 typedef unsigned int PIXEL_DATA;
22 #ifdef GSC_GRAPHICS_COLOR_32BIT 23 typedef unsigned int PIXEL_DATA;
27 #define RGB16(r,g,b) (unsigned int)(((b) >> 3) | (((g) >> 2) << 5) | (((r) >> 3) << 11)) 30 #define RGB24(r,g,b) (unsigned int)((b) | ((g) << 8) | ((r) << 16)) 31 #define RGB24_TO_R(c) (unsigned char)(((c) >> 16) & 0xff) 32 #define RGB24_TO_G(c) (unsigned char)(((c) >> 8) & 0xff) 33 #define RGB24_TO_B(c) (unsigned char)(((c) >> 0) & 0xff) 36 #define RGB32(r,g,b) (unsigned int)(0xff000000 | (b) | ((g) << 8) | ((r) << 16)) 37 #define RGB32_TO_R(c) (unsigned char)(((c) >> 16) & 0xff) 38 #define RGB32_TO_G(c) (unsigned char)(((c) >> 8) & 0xff) 39 #define RGB32_TO_B(c) (unsigned char)(((c) >> 0) & 0xff) 42 #if defined(GSC_GRAPHICS_COLOR_16BIT) 44 #elif defined(GSC_GRAPHICS_COLOR_24BIT) 46 #define RGB_TO_R RGB24_TO_R 47 #define RGB_TO_G RGB24_TO_G 48 #define RGB_TO_B RGB24_TO_B 49 #elif defined(GSC_GRAPHICS_COLOR_32BIT) 51 #define RGB_TO_R RGB32_TO_R 52 #define RGB_TO_G RGB32_TO_G 53 #define RGB_TO_B RGB32_TO_B 60 #define GRP_DRAWMODE_NORMAL 0 61 #define GRP_DRAWMODE_REVERSE 1
62 #define GRP_DRAWMODE_FOREONLY 2
96 unsigned short color_depth;
97 unsigned short frame_num;
99 unsigned int mem_size;
100 unsigned int pen_color;
101 unsigned int back_color;
102 unsigned char pen_mode;
105 unsigned char pen_pat[8];
135 extern void draw_h_line(
short x,
short y,
short width);
136 extern void draw_v_line(
short x,
short y,
short height);
137 extern void draw_line(
short x,
short y,
short xe,
short ye);
140 extern void draw_bitdata(
short px,
short py,
short width,
short height,
unsigned char *data,
short dw);
142 extern void draw_enlarged_bitdata(
short px,
short py,
short width,
short height,
unsigned char *data,
short dw,
int rate);
146 extern void draw_circle(
short x0,
short y0,
short r);
148 extern void draw_ellipse(
short xc,
short yc,
short rx,
short ry);
151 extern void scroll_screen(
short x,
short y);
158 extern void draw_vertex4_region(
short x0,
short y0,
short x1,
short y1,
short x2,
short y2,
short x3,
short y3);
163 extern void draw_sector(
short x,
short y,
short er,
short ir,
char q);
170 extern void draw_image(
short px,
short py,
short width,
short height,
void *image,
short dw);
174 extern void resize_image(
void *dst_image,
short dwidth,
short dheight,
175 void *src_image,
short swidth,
short sheight);
void draw_point(short x, short y)
点を描画する
unsigned char get_draw_mode(void)
描画モードを取得する
void draw_round_box(struct st_box *box, short r)
角の丸い四角を描画する
void clear_clip_rect(void)
クリッピングエリアを無効にする
void draw_round_fill_box(struct st_box *box, short r)
塗りつぶした角の丸い四角を描画する
void draw_image(short px, short py, short width, short height, void *image, short dw)
イメージデータを描画する
void draw_round_rect(struct st_rect *rect, short r)
角の丸い矩形を描画する
void draw_bitmap(short px, short py, struct st_bitmap *bitmap)
ビットマップデータを描画する
void set_clip_box(struct st_box *box)
クリッピングエリアを四角形で指定する
void set_backcolor(unsigned int color)
描画の背景色を設定する
void draw_sector(short x, short y, short er, short ir, char q)
扇形を描画する
void get_clip_rect(struct st_rect *rect)
クリッピングエリアを矩形で取得する
unsigned int get_forecolor(void)
描画の色を取得する
void get_screen_info(short *width, short *height)
スクリーンのサイズ情報を取得する
[TODO] 複数グラフィックデバイスに対応したい
unsigned char * data
ビットマップデータポインタ
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)
矩形を描画する
void scroll_rect_v(struct st_rect *rect, short pixcel)
矩形範囲を縦方向にスクロールする
int is_point_in_box(short x, short y, struct st_box *box)
座標が四角の内部か調べる
int is_point_in_rect(short x, short y, struct st_rect *rect)
座標が矩形の内部か調べる
int register_graphics_dev(struct st_device *dev)
グラフィックライブラリにデバイスを登録する
void draw_bitdata(short px, short py, short width, short height, unsigned char *data, short dw)
ビットデータを描画する
void draw_fill_rect(struct st_rect *rect)
塗りつぶした矩形を描画する
#define MAX_FRAMEBUF
最大フレームバッファ数
void draw_box(struct st_box *box)
四角を描画する
void draw_enlarged_bitdata(short px, short py, short width, short height, unsigned char *data, short dw, int rate)
拡大したビットデータを描画する
int get_draw_frame(void)
描画するフレームバッファ番号を取得する
void set_draw_mode(unsigned char mode)
描画モードを設定する
void set_forecolor(unsigned int color)
描画の色を設定する
int get_display_frame(void)
表示しているフレームバッファ番号を取得する
void draw_fill_ellipse(short xc, short yc, short rx, short ry)
塗りつぶした楕円を描画する
void draw_fill_box(struct st_box *box)
塗りつぶした四角を描画する
int set_display_frame(int fnum)
表示するフレームバッファ番号を設定する
void box2rect(struct st_rect *rect, struct st_box *box)
box -> rect 変換
void set_clip_rect(struct st_rect *rect)
クリッピングエリアを矩形で指定する
void draw_quarter_circle(short x0, short y0, short r, char q)
1/4の円を描画する
unsigned int get_backcolor(void)
描画の背景色を取得する
int set_draw_frame(int fnum)
描画するフレームバッファ番号を設定する
void clear_screen(void)
画面を全て0で描画する
void and_rect(struct st_rect *a, struct st_rect *s1, struct st_rect *s2)
2つの矩形のアンドを求める
short empty_rect(struct st_rect *r)
矩形が0か調べる
void draw_vertex4_region(short x0, short y0, short x1, short y1, short x2, short y2, short x3, short y3)
塗りつぶした4頂点の領域を描画する
void draw_fill_circle(short x0, short y0, short r)
塗りつぶした円を描画する
void resize_image(void *dst_image, short dwidth, short dheight, void *src_image, short swidth, short sheight)
イメージデータのサイズを変更する
int get_frame_num(void)
フレームバッファ数を取得する
void draw_enlarged_bitmap(short px, short py, struct st_bitmap *bitmap, int rate)
拡大したビットマップデータを描画する
int init_graphics(char *devname)
グラフィックスライブラリを初期化する
void draw_v_line(short x, short y, short height)
垂直線を描画する
void correct_rect(struct st_rect *rect)
矩形を修正する
void draw_circle(short x0, short y0, short r)
円を描画する
void draw_round_fill_rect(struct st_rect *rect, short r)
角の丸い塗りつぶした矩形を描画する
void draw_ellipse(short xc, short yc, short rx, short ry)
楕円を描画する