GadgetSeed  0.9.6
graphics.h ファイル

グラフィックライブラリ [詳解]

#include "sysconfig.h"
#include "device.h"
graphics.h の依存先関係図:
被依存関係図:

[ソースコード]

データ構造

struct  st_rect
 矩形 [詳解]
 
struct  st_position
 位置 [詳解]
 
struct  st_surface
 [詳解]
 
struct  st_box
 長(正)方形 [詳解]
 
struct  st_bitmap
 ビットマップグラフィックデータ [詳解]
 
struct  st_graphics_context
 [TODO] 複数グラフィックデバイスに対応したい [詳解]
 

マクロ定義

#define MAX_FRAMEBUF   2
 最大フレームバッファ数 [詳解]
 
#define RGB16(r, g, b)   (unsigned int)(((b) >> 3) | (((g) >> 2) << 5) | (((r) >> 3) << 11))
 
#define RGB24(r, g, b)   (unsigned int)((b) | ((g) << 8) | ((r) << 16))
 
#define RGB24_TO_R(c)   (unsigned char)(((c) >> 16) & 0xff)
 
#define RGB24_TO_G(c)   (unsigned char)(((c) >> 8) & 0xff)
 
#define RGB24_TO_B(c)   (unsigned char)(((c) >> 0) & 0xff)
 
#define RGB32(r, g, b)   (unsigned int)(0xff000000 | (b) | ((g) << 8) | ((r) << 16))
 
#define RGB32_TO_R(c)   (unsigned char)(((c) >> 16) & 0xff)
 
#define RGB32_TO_G(c)   (unsigned char)(((c) >> 8) & 0xff)
 
#define RGB32_TO_B(c)   (unsigned char)(((c) >> 0) & 0xff)
 
#define RGB   RGB16
 
#define GRP_DRAWMODE_NORMAL   0
 Draw the foreground with fore color. Draw the background with back color.
 
#define GRP_DRAWMODE_REVERSE   1
 Draw the foreground with back color. Draw the background with fore color.
 
#define GRP_DRAWMODE_FOREONLY   2
 Draw the foreground with back color. No draw the background.
 

型定義

typedef unsigned short PIXEL_DATA
 $gsc グラフィックデバイスは24ビットカラー [詳解]
 

関数

int register_graphics_dev (struct st_device *dev)
 グラフィックライブラリにデバイスを登録する [詳解]
 
int init_graphics (char *devname)
 グラフィックスライブラリを初期化する [詳解]
 
int get_frame_num (void)
 フレームバッファ数を取得する [詳解]
 
int set_display_frame (int fnum)
 表示するフレームバッファ番号を設定する [詳解]
 
int get_display_frame (void)
 表示しているフレームバッファ番号を取得する [詳解]
 
int set_draw_frame (int fnum)
 描画するフレームバッファ番号を設定する [詳解]
 
int get_draw_frame (void)
 描画するフレームバッファ番号を取得する [詳解]
 
void get_screen_info (short *width, short *height)
 スクリーンのサイズ情報を取得する [詳解]
 
void clear_screen (void)
 画面を全て0で描画する
 
void set_forecolor (unsigned int color)
 描画の色を設定する [詳解]
 
unsigned int get_forecolor (void)
 描画の色を取得する [詳解]
 
void set_backcolor (unsigned int color)
 描画の背景色を設定する [詳解]
 
unsigned int get_backcolor (void)
 描画の背景色を取得する [詳解]
 
void set_draw_mode (unsigned char mode)
 描画モードを設定する [詳解]
 
unsigned char get_draw_mode (void)
 描画モードを取得する [詳解]
 
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 correct_rect (struct st_rect *rect)
 矩形を修正する [詳解]
 
void clear_clip_rect (void)
 クリッピングエリアを無効にする
 
void set_clip_rect (struct st_rect *rect)
 クリッピングエリアを矩形で指定する [詳解]
 
void set_clip_box (struct st_box *box)
 クリッピングエリアを四角形で指定する [詳解]
 
void get_clip_rect (struct st_rect *rect)
 クリッピングエリアを矩形で取得する [詳解]
 
void draw_point (short x, short y)
 点を描画する [詳解]
 
void draw_h_line (short x, short y, short width)
 水平線を描画する [詳解]
 
void draw_v_line (short x, short y, short height)
 垂直線を描画する [詳解]
 
void draw_line (short x, short y, short xe, short ye)
 直線を描画する [詳解]
 
void draw_rect (struct st_rect *rect)
 矩形を描画する [詳解]
 
void draw_fill_rect (struct st_rect *rect)
 塗りつぶした矩形を描画する [詳解]
 
void draw_bitdata (short px, short py, short width, short height, unsigned char *data, short dw)
 ビットデータを描画する [詳解]
 
void draw_enlarged_bitdata (short px, short py, short width, short height, unsigned char *data, short dw, int rate)
 拡大したビットデータを描画する [詳解]
 
void draw_bitmap (short px, short py, struct st_bitmap *bitmap)
 ビットマップデータを描画する [詳解]
 
void draw_enlarged_bitmap (short px, short py, struct st_bitmap *bitmap, int rate)
 拡大したビットマップデータを描画する [詳解]
 
void draw_circle (short x0, short y0, short r)
 円を描画する [詳解]
 
void draw_fill_circle (short x0, short y0, short r)
 塗りつぶした円を描画する [詳解]
 
void draw_ellipse (short xc, short yc, short rx, short ry)
 楕円を描画する [詳解]
 
void draw_fill_ellipse (short xc, short yc, short rx, short ry)
 塗りつぶした楕円を描画する [詳解]
 
void draw_box (struct st_box *box)
 四角を描画する [詳解]
 
void draw_round_box (struct st_box *box, short r)
 角の丸い四角を描画する [詳解]
 
void draw_fill_box (struct st_box *box)
 塗りつぶした四角を描画する [詳解]
 
void draw_round_fill_box (struct st_box *box, short r)
 塗りつぶした角の丸い四角を描画する [詳解]
 
void draw_vertex4_region (short x0, short y0, short x1, short y1, short x2, short y2, short x3, short y3)
 塗りつぶした4頂点の領域を描画する [詳解]
 
void draw_round_rect (struct st_rect *rect, short r)
 角の丸い矩形を描画する [詳解]
 
void draw_round_fill_rect (struct st_rect *rect, short r)
 角の丸い塗りつぶした矩形を描画する [詳解]
 
void draw_quarter_circle (short x0, short y0, short r, char q)
 1/4の円を描画する [詳解]
 
void draw_sector (short x, short y, short er, short ir, char q)
 扇形を描画する [詳解]
 
int is_point_in_rect (short x, short y, struct st_rect *rect)
 座標が矩形の内部か調べる [詳解]
 
int is_point_in_box (short x, short y, struct st_box *box)
 座標が四角の内部か調べる [詳解]
 
void box2rect (struct st_rect *rect, struct st_box *box)
 box -> rect 変換 [詳解]
 
void draw_image (short px, short py, short width, short height, void *image, short dw)
 イメージデータを描画する [詳解]
 
void scroll_rect_v (struct st_rect *rect, short pixcel)
 矩形範囲を縦方向にスクロールする [詳解]
 
void resize_image (void *dst_image, short dwidth, short dheight, void *src_image, short swidth, short sheight)
 イメージデータのサイズを変更する [詳解]
 

詳解

グラフィックライブラリ

日付
2007.03.20
著者
Takashi SHUDO

graphics.h に定義があります。

マクロ定義詳解

◆ MAX_FRAMEBUF

#define MAX_FRAMEBUF   2

最大フレームバッファ数

$gsc グラフィックデバイスは16ビットカラー

graphics.h14 行目に定義があります。

型定義詳解

◆ PIXEL_DATA

typedef unsigned short PIXEL_DATA

$gsc グラフィックデバイスは24ビットカラー

$gsc グラフィックデバイスは32ビットカラー

graphics.h17 行目に定義があります。

関数詳解

◆ and_rect()

void and_rect ( struct st_rect a,
struct st_rect s1,
struct st_rect s2 
)

2つの矩形のアンドを求める

引数
[out]a2つの矩形のアンド矩形
[in]s1矩形1
[in]s2矩形2

graphics_op.c24 行目に定義があります。

参照先 st_rect::bottom, st_rect::left, st_rect::right, st_rect::top.

参照元 draw_bitdata(), draw_enlarged_bitdata(), draw_fill_rect(), draw_image(), draw_rect(), draw_round_fill_rect().

被呼び出し関係図:

◆ box2rect()

void box2rect ( struct st_rect rect,
struct st_box box 
)

box -> rect 変換

引数
[out]rect矩形
[in]box四角

graphics_op.c162 行目に定義があります。

参照先 st_rect::bottom, st_surface::height, st_rect::left, st_box::pos, st_rect::right, st_box::sur, st_rect::top, st_surface::width, st_position::x, st_position::y.

参照元 draw_box(), draw_fill_box(), draw_round_box(), draw_round_fill_box(), set_clip_box().

被呼び出し関係図:

◆ correct_rect()

void correct_rect ( struct st_rect rect)

矩形を修正する

引数
[in,out]rect矩形

graphics_op.c88 行目に定義があります。

参照先 st_rect::bottom, st_rect::left, st_rect::right, st_rect::top.

◆ draw_bitdata()

void draw_bitdata ( short  px,
short  py,
short  width,
short  height,
unsigned char *  data,
short  dw 
)

ビットデータを描画する

引数
[in]px描画開始X座標
[in]py描画開始Y座標
[in]width描画幅
[in]height描画高さ
[in]dataビットデータポインタ
[in]dwビットデータ幅

graphics.c1041 行目に定義があります。

参照先 and_rect(), st_rect::bottom, st_rect::left, st_rect::right, st_rect::top.

参照元 draw_bitmap().

呼び出し関係図:
被呼び出し関係図:

◆ draw_bitmap()

void draw_bitmap ( short  px,
short  py,
struct st_bitmap bitmap 
)

ビットマップデータを描画する

引数
[in]px描画X座標
[in]py描画Y座標
[in]bitmapビットマップデータ

graphics.c1146 行目に定義があります。

参照先 st_bitmap::data, draw_bitdata(), st_bitmap::height, st_bitmap::width.

呼び出し関係図:

◆ draw_box()

void draw_box ( struct st_box box)

四角を描画する

引数
[in]box四角

graphics.c1391 行目に定義があります。

参照先 box2rect(), draw_rect().

呼び出し関係図:

◆ draw_circle()

void draw_circle ( short  x0,
short  y0,
short  r 
)

円を描画する

引数
[in]x0円の中心X座標
[in]y0円の中心Y座標
[in]r円の半径

graphics.c1173 行目に定義があります。

参照先 draw_point().

呼び出し関係図:

◆ draw_ellipse()

void draw_ellipse ( short  xc,
short  yc,
short  rx,
short  ry 
)

楕円を描画する

引数
[in]xc楕円の中心X座標
[in]yc楕円の中心Y座標
[in]rx縦の半径
[in]ry横の半径

graphics.c1283 行目に定義があります。

参照先 draw_point().

呼び出し関係図:

◆ draw_enlarged_bitdata()

void draw_enlarged_bitdata ( short  px,
short  py,
short  width,
short  height,
unsigned char *  data,
short  dw,
int  rate 
)

拡大したビットデータを描画する

引数
[in]px描画開始X座標
[in]py描画開始Y座標
[in]width描画幅
[in]height描画高さ
[in]dataビットデータポインタ
[in]dwビットデータ幅
[in]rate拡大率

graphics.c1086 行目に定義があります。

参照先 and_rect(), st_rect::bottom, st_rect::left, st_rect::right, st_rect::top.

参照元 draw_enlarged_bitmap().

呼び出し関係図:
被呼び出し関係図:

◆ draw_enlarged_bitmap()

void draw_enlarged_bitmap ( short  px,
short  py,
struct st_bitmap bitmap,
int  rate 
)

拡大したビットマップデータを描画する

引数
[in]px描画X座標
[in]py描画Y座標
[in]bitmapビットマップデータ
[in]rate拡大率

graphics.c1160 行目に定義があります。

参照先 st_bitmap::data, draw_enlarged_bitdata(), st_bitmap::height, st_bitmap::width.

呼び出し関係図:

◆ draw_fill_box()

void draw_fill_box ( struct st_box box)

塗りつぶした四角を描画する

引数
[in]box四角

graphics.c1435 行目に定義があります。

参照先 box2rect(), draw_fill_rect().

呼び出し関係図:

◆ draw_fill_circle()

void draw_fill_circle ( short  x0,
short  y0,
short  r 
)

塗りつぶした円を描画する

引数
[in]x0円の中心X座標
[in]y0円の中心Y座標
[in]r円の半径

graphics.c1253 行目に定義があります。

参照先 draw_h_line().

呼び出し関係図:

◆ draw_fill_ellipse()

void draw_fill_ellipse ( short  xc,
short  yc,
short  rx,
short  ry 
)

塗りつぶした楕円を描画する

引数
[in]xc楕円の中心X座標
[in]yc楕円の中心Y座標
[in]rx縦の半径
[in]ry横の半径

graphics.c1335 行目に定義があります。

参照先 draw_h_line(), IOCMD_VIDEO_SCROLL, ioctl_device().

呼び出し関係図:

◆ draw_fill_rect()

void draw_fill_rect ( struct st_rect rect)

塗りつぶした矩形を描画する

引数
[in]rect矩形

graphics.c821 行目に定義があります。

参照先 and_rect().

参照元 draw_fill_box().

呼び出し関係図:
被呼び出し関係図:

◆ draw_h_line()

void draw_h_line ( short  x,
short  y,
short  width 
)

水平線を描画する

引数
[in]x水平線のX座標
[in]y水平線上のY座標
[in]width水平線の長さ

graphics.c477 行目に定義があります。

参照元 draw_fill_circle(), draw_fill_ellipse(), draw_round_fill_rect().

被呼び出し関係図:

◆ draw_image()

void draw_image ( short  px,
short  py,
short  width,
short  height,
void *  image,
short  dw 
)

イメージデータを描画する

引数
[in]px描画X座標
[in]py描画Y座標
[in]width描画幅
[in]height描画高さ
[in]imageイメージデータポインタ
[in]dwイメージデータ幅

graphics.c1840 行目に定義があります。

参照先 and_rect(), st_rect::bottom, st_rect::left, st_rect::right, st_rect::top.

呼び出し関係図:

◆ draw_line()

void draw_line ( short  x,
short  y,
short  xe,
short  ye 
)

直線を描画する

引数
[in]x直線描画開始X座標
[in]y直線描画開始Y座標
[in]xe直線描画終了X座標
[in]ye直線描画終了Y座標

graphics.c664 行目に定義があります。

◆ draw_point()

void draw_point ( short  x,
short  y 
)

点を描画する

引数
[in]x点のX座標
[in]y点のY座標

graphics.c447 行目に定義があります。

参照元 draw_circle(), draw_ellipse(), draw_quarter_circle().

被呼び出し関係図:

◆ draw_quarter_circle()

void draw_quarter_circle ( short  x0,
short  y0,
short  r,
char  q 
)

1/4の円を描画する

引数
[in]x0円の中心X座標
[in]y0円の中心Y座標
[in]r円の半径
[in]q象限(0:第1象限 〜 3:4象限)

graphics.c1207 行目に定義があります。

参照先 draw_point().

参照元 draw_round_rect().

呼び出し関係図:
被呼び出し関係図:

◆ draw_rect()

void draw_rect ( struct st_rect rect)

矩形を描画する

引数
[in]rect矩形

graphics.c694 行目に定義があります。

参照先 and_rect().

参照元 draw_box().

呼び出し関係図:
被呼び出し関係図:

◆ draw_round_box()

void draw_round_box ( struct st_box box,
short  r 
)

角の丸い四角を描画する

引数
[in]box四角
[in]r角丸の半径

graphics.c1406 行目に定義があります。

参照先 box2rect(), draw_round_rect().

呼び出し関係図:

◆ draw_round_fill_box()

void draw_round_fill_box ( struct st_box box,
short  r 
)

塗りつぶした角の丸い四角を描画する

引数
[in]box四角
[in]r角丸の半径

graphics.c1421 行目に定義があります。

参照先 box2rect(), draw_round_fill_rect().

呼び出し関係図:

◆ draw_round_fill_rect()

void draw_round_fill_rect ( struct st_rect rect,
short  r 
)

角の丸い塗りつぶした矩形を描画する

引数
[in]rect矩形
[in]r角丸の半径

graphics.c838 行目に定義があります。

参照先 and_rect(), st_rect::bottom, draw_h_line(), st_rect::left, st_rect::right, st_rect::top.

参照元 draw_round_fill_box().

呼び出し関係図:
被呼び出し関係図:

◆ draw_round_rect()

void draw_round_rect ( struct st_rect rect,
short  r 
)

角の丸い矩形を描画する

引数
[in]rect矩形
[in]r角丸の半径

graphics.c748 行目に定義があります。

参照先 st_rect::bottom, draw_quarter_circle(), st_rect::left, st_rect::right, st_rect::top.

参照元 draw_round_box().

呼び出し関係図:
被呼び出し関係図:

◆ draw_sector()

void draw_sector ( short  x,
short  y,
short  er,
short  ir,
char  q 
)

扇形を描画する

引数
[in]x中心のX座標
[in]y中心のY座標
[in]er外径
[in]ir内径
[in]q象限(0:第1象限 〜 3:4象限)

graphics.c1732 行目に定義があります。

◆ draw_v_line()

void draw_v_line ( short  x,
short  y,
short  height 
)

垂直線を描画する

引数
[in]x垂直線左のX座標
[in]y垂直線のY座標
[in]height垂直線の長さ

graphics.c511 行目に定義があります。

◆ draw_vertex4_region()

void draw_vertex4_region ( short  x0,
short  y0,
short  x1,
short  y1,
short  x2,
short  y2,
short  x3,
short  y3 
)

塗りつぶした4頂点の領域を描画する

引数
[in]x0頂点0のX座標
[in]y0頂点0のY座標
[in]x1頂点1のX座標
[in]y1頂点1のY座標
[in]x2頂点2のX座標
[in]y2頂点2のY座標
[in]x3頂点3のX座標
[in]y3頂点3のY座標

graphics.c1510 行目に定義があります。

◆ empty_rect()

short empty_rect ( struct st_rect rect)

矩形が0か調べる

引数
rect矩形
戻り値
=1:矩形は0

graphics_op.c70 行目に定義があります。

参照先 st_rect::bottom, st_rect::left, st_rect::right, st_rect::top.

◆ get_backcolor()

unsigned int get_backcolor ( void  )

描画の背景色を取得する

戻り値
背景色

graphics.c404 行目に定義があります。

◆ get_clip_rect()

void get_clip_rect ( struct st_rect rect)

クリッピングエリアを矩形で取得する

引数
[out]rect取得したクリッピングエリア矩形

graphics.c293 行目に定義があります。

◆ get_display_frame()

int get_display_frame ( void  )

表示しているフレームバッファ番号を取得する

戻り値
表示しているフレームバッファ番号

graphics.c214 行目に定義があります。

参照先 IOCMD_VIDEO_GETDISPFRAME, ioctl_device().

呼び出し関係図:

◆ get_draw_frame()

int get_draw_frame ( void  )

描画するフレームバッファ番号を取得する

戻り値
描画するフレームバッファ番号

graphics.c246 行目に定義があります。

参照先 IOCMD_VIDEO_GETDRAWFRAME, ioctl_device().

呼び出し関係図:

◆ get_draw_mode()

unsigned char get_draw_mode ( void  )

描画モードを取得する

戻り値
描画モード

graphics.c426 行目に定義があります。

◆ get_forecolor()

unsigned int get_forecolor ( void  )

描画の色を取得する

戻り値
描画の色

graphics.c382 行目に定義があります。

◆ get_frame_num()

int get_frame_num ( void  )

フレームバッファ数を取得する

戻り値
フレームバッファ数

graphics.c224 行目に定義があります。

◆ get_screen_info()

void get_screen_info ( short *  width,
short *  height 
)

スクリーンのサイズ情報を取得する

引数
[out]widthスクリーン幅ピクセル数
[out]heightスクリーン高さピクセル数

graphics.c329 行目に定義があります。

◆ init_graphics()

int init_graphics ( char *  devname)

グラフィックスライブラリを初期化する

引数
[in]devnameグラフィックスデバイス名
戻り値
!=0:エラー

graphics.c305 行目に定義があります。

参照先 open_device().

呼び出し関係図:

◆ is_point_in_box()

int is_point_in_box ( short  x,
short  y,
struct st_box box 
)

座標が四角の内部か調べる

引数
[in]x座標X
[in]y座標Y
[in]box四角
戻り値
=1:座標は四角の中

graphics_op.c144 行目に定義があります。

参照先 st_rect::bottom, st_surface::height, is_point_in_rect(), st_rect::left, st_box::pos, st_rect::right, st_box::sur, st_rect::top, st_surface::width, st_position::x, st_position::y.

呼び出し関係図:

◆ is_point_in_rect()

int is_point_in_rect ( short  x,
short  y,
struct st_rect rect 
)

座標が矩形の内部か調べる

引数
[in]x座標X
[in]y座標Y
[in]rect矩形
戻り値
=1:座標は矩形の中

graphics_op.c114 行目に定義があります。

参照先 st_rect::bottom, st_rect::right.

参照元 is_point_in_box().

被呼び出し関係図:

◆ register_graphics_dev()

int register_graphics_dev ( struct st_device dev)

グラフィックライブラリにデバイスを登録する

引数
[in]devグラフィックデバイス
戻り値
!=0:エラー

graphics.c148 行目に定義があります。

参照先 st_device::info.

◆ resize_image()

void resize_image ( void *  dst_image,
short  dwidth,
short  dheight,
void *  src_image,
short  swidth,
short  sheight 
)

イメージデータのサイズを変更する

引数
[out]dst_imageリサイズ後イメージデータ
[in]dwidthリサイズ後イメージデータ幅
[in]dwidthリサイズ後イメージデータ高さ
[in]srctimageリサイズ前イメージデータ
[in]dwidthリサイズ前イメージデータ幅
[in]dwidthリサイズ前イメージデータ高さ

graphics_op.c180 行目に定義があります。

◆ scroll_rect_v()

void scroll_rect_v ( struct st_rect rect,
short  pixel 
)

矩形範囲を縦方向にスクロールする

引数
[in]rectスクロール範囲矩形
[in]pixelスクロールドット数

graphics.c1882 行目に定義があります。

参照先 st_rect::bottom, st_rect::left, st_rect::right, st_rect::top.

◆ set_backcolor()

void set_backcolor ( unsigned int  color)

描画の背景色を設定する

引数
color背景色

graphics.c392 行目に定義があります。

参照元 draw_graph_object().

被呼び出し関係図:

◆ set_clip_box()

void set_clip_box ( struct st_box box)

クリッピングエリアを四角形で指定する

引数
[in]boxクリッピングエリア四角形

graphics.c279 行目に定義があります。

参照先 box2rect(), set_clip_rect().

呼び出し関係図:

◆ set_clip_rect()

void set_clip_rect ( struct st_rect rect)

クリッピングエリアを矩形で指定する

引数
[in]rectクリッピングエリア矩形

graphics.c264 行目に定義があります。

参照元 set_clip_box().

被呼び出し関係図:

◆ set_display_frame()

int set_display_frame ( int  fnum)

表示するフレームバッファ番号を設定する

引数
[in]fnum表示するフレームバッファ番号
戻り値
!=0:エラー

graphics.c204 行目に定義があります。

参照先 IOCMD_VIDEO_SETDISPFRAME, ioctl_device().

呼び出し関係図:

◆ set_draw_frame()

int set_draw_frame ( int  fnum)

描画するフレームバッファ番号を設定する

引数
[in]fnum描画するフレームバッファ番号
戻り値
!=0:エラー

graphics.c236 行目に定義があります。

参照先 IOCMD_VIDEO_SETDRAWFRAME, ioctl_device().

呼び出し関係図:

◆ set_draw_mode()

void set_draw_mode ( unsigned char  mode)

描画モードを設定する

引数
[in]mode描画モード

graphics.c414 行目に定義があります。

参照元 draw_graph_object().

被呼び出し関係図:

◆ set_forecolor()

void set_forecolor ( unsigned int  color)

描画の色を設定する

引数
[in]color描画の色

graphics.c370 行目に定義があります。

参照元 draw_graph_object().

被呼び出し関係図: