グラフィックスライブラリ
ユーザーズガイド2010 年 10 月 25 日 第 11 版

株式会社ミスポはじめに
本製品はリアルタイム OS「NORTi」用のグラフィックスライブラリです。
グラフィックスライブラリには開発キットに付属する評価版と、単品で販売されている製品版の２種類があり、本書は、両方のユーザーズガイドを兼ねています。この２つの版の違いはグラフィックス
コントローラドライバソースコードの有無です。評価版グラフィックスライブラリには、グラフィッ
クスコントローラドライバがライブラリに内蔵されており、設定値が開発キットの評価ボード仕様に合わせて固定となっています。一方、製品版グラフィックスライブラリにはドライバソースコードが付属しており、ユーザーのボードに合わせてカスタマイズしてアプリケーションにリンクすることにより、グラフィックライブラリをユーザーのボードに移植することができます。

グラフィックスライブラリで使用できるフォントは以下の３種類です。
・日本規格協会 JIS X 9051-84 準拠「表示装置用 16 ドット字形」
・日本規格協会 JIS X 9052-83 準拠「ドットプリンタ用 24 ドット字形」
・「Web Browser for NORTi」内蔵 14 ドットフォント
日本規格協会 JIS フォントはグラフィックスライブラリに内蔵されており、ライセンスされたプロジェ
クトの範囲でユーザーのボードへの搭載を自由に行えます。「Web Browser for NORTi」内蔵のフォン
トをユーザーのボードへ搭載するためには、別途「Web Browser for NORTi」のロイヤリティが発生します。

NORTi は株式会社ミスポの登録商標です。
本書で使用するコンパイラ名、CPU 名、その他製品名は、各メーカーの商標です。
本書に記載されている内容は、予告無く変更されることがあります。

目次
第 1 章 概要............................................................................. 1
1.1 フォルダおよびファイル構成 ........................................................ 1
ドキュメント........................................................................ 1
ヘッダファイル ...................................................................... 2
ライブラリ.......................................................................... 3
ソースコード........................................................................ 4
1.2 主な仕様.......................................................................... 5
座標系.............................................................................. 5
画面の回転.......................................................................... 6
色 ................................................................................. 9線種............................................................................... 10
描画の流れ......................................................................... 10
画面管理........................................................................... 11
使用するリソース ................................................................... 12
コンフィグレーション ............................................................... 13
ダブル・バッファリング ............................................................. 14
第 2 章 API仕様......................................................................... 15
grl_ini.............................................................................. 15
grl_ext.............................................................................. 15
grl_set_pal.......................................................................... 16
grl_get_pal.......................................................................... 17
grl_cre_scr.......................................................................... 18
grl_set_col, grl_get_col ............................................................. 19
grl_set_ptn, grl_get_ptn ............................................................. 19
grl_set_pos, grl_get_pos ............................................................. 20
grl_set_fnt, grl_get_fnt ............................................................. 21
grl_dra_dot.......................................................................... 22
grl_dra_lin.......................................................................... 22
grl_dra_lto.......................................................................... 23
grl_dra_rec.......................................................................... 23
grl_fil_rec.......................................................................... 24
grl_dra_cir.......................................................................... 25
grl_cpy_vrm.......................................................................... 26
grl_cpy_img.......................................................................... 27
grl_clr_scr.......................................................................... 27

grl_dra_txt.......................................................................... 28
grl_get_tid.......................................................................... 29
grl_chg_pri.......................................................................... 29
grl_set_buf.......................................................................... 30
grl_set_vrm.......................................................................... 30
grl_cpy_buf.......................................................................... 31
grl_wai_end.......................................................................... 32
付録 .................................................................................. 33
フォント............................................................................. 33
JIS X 9051 準拠 表示装置用 16 ドット字形データ ...................................... 34
JIS X 9052 準拠 ドットプリンタ用 24 ドット字形データ ................................ 38

グラフィックスライブラリ ユーザーズガイド

第 1 章 概要
1.1 フォルダおよびファイル構成
本ライブラリのフォルダ構成は、次の通りです。
NORTi│├ NOGRL│ ├ DOC
ドキュメント│ │ ├ nogrl.pdf│ │ └ GRL_XXX_YYY_ZZZ.txt│ ├ INC
ヘッダファイル│ │ ├ ascii.h│ │ ├ jis.h│ │ ├ nogrl.h│ │ ├ nogrlc.h│ │ └ nogrls.h│ ├ LIBライブラリ│ │ └ XXX
│ │└ YYY
│ └ SRC
ソースコード│├ ascii.c│├ jis.c│├ jiskan14.c│├ jiskan16.c│├ jiskan24.c│└ nogrl.c
└ SMP
└ XXX
└ BBB
評価ボード用サンプルプログラムとグラフィックスコントローラドライバ
上記の XXX は対応プロセッサ名略称(例：SH, ARM, etc.)、YYY は対応コンパイラ名略称(例：SHC7, SHC8,
SHC9, etc.)、BBB は評価ボード名(例：MS7720, MS7727CP,MS7760CP etc.)です。実際のフォルダ名は、
DOC フォルダの補足説明書を参照してください。

ドキュメントnogrl.pdf
グラフィックスライブラリ ユーザーズガイド(本書)です。ファイル構成、API 仕様、制限事項など、各処理系(プロセッサやコンパイラ)に依存しない共通の事柄を説明しています。

GRL_XXX_YYY_ZZZ.txt
グラフィックスライブラリ 補足説明書です。処理系に依存する部分の説明、修正履歴を記述しています。ファイル名の XXX、YYY の部分は処理系によって異なります。ZZZ はバージョンです。

1グラフィックスライブラリ ユーザーズガイド

ヘッダファイル
nogrl.h
グラフィックスライブラリヘッダファイルです。グラフィックスライブラリを利用する全てのソース
ファイルで#include してください。

nogrlc.h
グラフィックスライブラリ コンフィグレーションヘッダファイルです。アプリケーションの１つのソースファイルでのみ#include してください。#include 文の上に、本ヘッダファイル内に定義される
マクロの値を定義することにより、コンフィグレーションを行うことができます。

nogrls.h
グラフィックスライブラリ内部定義ヘッダファイルです。通常アプリケーションで#include する必要はありません。

ascii.h, jis.h
ASCII コード、JIS コード、シフト JIS コード関連ヘッダファイルです。各コードを相互に変換する関数を利用する場合、アプリケーションのソースファイルに#include してください。

2

グラフィックスライブラリ ユーザーズガイド

ライブラリ
グラフィックスライブラリは、プロセッサ、コンパイラ、エンディアン、デバッグ情報の有無によって異なるライブラリがそれぞれ用意されています。ご使用の開発環境に必要なライブラリをアプリ
ケーションにリンクしてください。

ファイル名の命名規則は次の通りです。

nogdXXXX.XXX

デバッグ情報付きライブラリ

noglXXXX.XXX

デバッグ情報なしライブラリ

XXXX.XXX の部分はプロセッサやエンディアンによって異なります。例えば、ルネサス SuperH/SHC 用のライブラリファイル名は次のようになります。

デバッグ情報付きライブラリ
nogdsh3b.lib

SH-3、ビッグエンディアン

nogdsh3l.lib

SH-3、リトルエンディアン

nogdsh4b.lib

SH-4、ビッグエンディアン

nogdsh4l.lib

SH-4、リトルエンディアン

デバッグ情報なしライブラリ
noglsh3b.lib

SH-3、ビッグエンディアン

noglsh3l.lib

SH-3、リトルエンディアン

noglsh4b.lib

SH-4、ビッグエンディアン

noglsh4l.lib

SH-4、リトルエンディアン

3グラフィックスライブラリ ユーザーズガイド

ソースコードグラフィックスライブラリはライブラリ化されていますので、通常は以下のソースファイルをコンパイルしてアプリケーションにリンクする必要はありません。

nogrl.c
グラフィックスライブラリのソースコード

ascii.c
ASCII コードを JIS コード、シフト JIS コードに変換する関数

jis.c
JIS コードとシフト JIS コードを相互に変換関数

jiskan14.c, jiskan16.c, jiskan24.c
JIS フォントデータとフォント描画関数

4

グラフィックスライブラリ ユーザーズガイド

1.2 主な仕様
座標系
既定の設定では、論理座標系と物理座標系は同一です。LCD の左上を原点として右方向が X 軸正方向、下方向が Y 軸正方向となります。ここでは、論理座標系はアプリケーションがグラフィックスライブ
ラリ API によって描画行うときに使用する座標系を、物理座標系はグラフィックスライブラリが VRAMに描画するときに使用する座標系を意味します。
グラフィックスライブラリはその初期化処理においてグラフィックスコントローラのディスプレイデ
バイス情報取得関数より物理的な画面の幅と高さを取得し、その範囲内で描画を実行します。各 APIの引数で座標値や幅、高さを指定する場合は、描画対象が画面の幅と高さの範囲に収まる値となるように考慮してください。

例) 縦型 QVGA LCD(240×320)の場合

論理座標系(0, 0)→ Ｘ軸

物理座標系(239,0)(0, 0)→ Ｘ軸(239,0)→Ｙ軸→Ｙ軸(0,319)(239, 319)

(0,319)(239, 319)

X 座標の範囲 0～239

X 座標の範囲 0～239

Y 座標の範囲 0～319

Y 座標の範囲 0～319

5グラフィックスライブラリ ユーザーズガイド

画面の回転
論理座標系を右回りに 90 度、180 度、270 度回転させて物理座標系にマッピングすることができます。
この機能により、縦長 LCD を横倒しに設置して横長 LCD として使用する事などができます。

例) 90 度回転した場合

物理座標系

論理座標系
(0, 0)
(0,0)

→ Ｘ軸

→ Ｘ軸

(239,0)(319,0)→Ｙ軸→Ｙ軸(0,239)(319,239)(0,319)(239, 319)

X 座標の範囲 0～319

X 座標の範囲 0～239

Y 座標の範囲 0～239

Y 座標の範囲 0～319

6グラフィックスライブラリ ユーザーズガイド例) 180 度回転した場合
論理座標系(0, 0)→ Ｘ軸

物理座標系(239,0)(0, 0)→ Ｘ軸(239,0)→Ｙ軸→Ｙ軸(0,319)(239, 319)

(0,319)(239, 319)

X 座標の範囲 0～239

X 座標の範囲 0～239

Y 座標の範囲 0～319

Y 座標の範囲 0～319

7グラフィックスライブラリ ユーザーズガイド例) 270 度回転した場合

物理座標系

論理座標系
(0, 0)
(0,0)

→ Ｘ軸

→ Ｘ軸

(239,0)(319,0)→Ｙ軸→Ｙ軸(0,239)(319,239)(0,319)(239, 319)

X 座標の範囲 0～319

X 座標の範囲 0～239

Y 座標の範囲 0～239

Y 座標の範囲 0～319

8グラフィックスライブラリ ユーザーズガイド

色16bit カラーを指定する場合は以下の RGB565 フォーマットを使用します。

MSB
RED 5bit

LSB
GREEN 6bit

BLUE 5bit

例)
色

RGB565

ビット

白0xFFFF|11111|111111|11111|

黄色

0xFFE0|11111|111111|00000|

シアン

0x07FF|00000|111111|11111|

緑

0x07E0|00000|111111|00000|

マゼンタ

0xF81F|11111|000000|11111|

赤0xF800|11111|000000|00000|

青0x001F|00000|000000|11111|

黒0x0000|00000|000000|00000|

パレットカラーを指定する場合はカラーパレットに格納されている各色のインデックス値を指定します。

例)
カラーパレットの例

色

インデックス値

白0

0xFFFFFF

黄色

1

0xFFFF00

シアン20x00FFFF

緑

3

0x00FF00

マゼンタ

40xFF00FF

赤5

0xFF0000

青60x0000FF

黒70x0000009(RGB888)

グラフィックスライブラリ ユーザーズガイド

線種
線種は 16bit のビットパターンで指定します。

例)
実線

0xFFFF───────

点線

0xAAAA…………………

破線

0xCCCC- - - - - - -描画の流れ
グラフィックスライブラリ内部の描画実行部分は独立したタスクとなっています。アプリケーション
からコールされるグラフィックス API は、描画要求メッセージをメールボックスへ送信するだけで、直ぐにリターンします。グラフィックスドライバタスクは、メールボックスから描画要求メッセージを受信すると順次描画を実行します。

アプリケーション↓(関数呼出し)グラフィックス API↓(メッセージ送信)

メールボックス↓(メッセージ受信)

グラフィックスドライバタスク
↓
描画実行

10

グラフィックスライブラリ ユーザーズガイド

画面管理
マルチタスクに対応するため、グラフィックス API では画面 ID による管理を行っています。
アプリケー
ションでは、最初に画面 ID を指定して画面を生成してください。生成された画面毎に画面管理ブロックが存在し、
そこに描画に必要な属性が保持されます。タスク毎に異なる画面 ID を指定することによって、複数のタスクからの異なる属性による描画を可能としています。保持される属性には例えば次のようなものがあります。

ペンカラー (点・線・文字の色)
線種
ペン位置 (次の線描画の始点)

画面生成後、アプリケーションでは画面 ID を指定してグラフィックス API を呼び出してください。グラフィックスライブラリは指定された ID の画面属性に基づいて描画を実行します。

例)
TASK Task1(void){
ID scrid = 1;/* 画面 ID *//* グラフィックスの初期化(1 つのタスクから 1 回だけ実行) */grl_ini();/* 画面の生成 */grl_cre_scr(scrid, NULL);/* 座標(0,0)-(100,100)を結ぶ白い実線を描画 */grl_set_col(scrid, 0xffff);
grl_set_ptn(scrid, 0xffff);
grl_dra_lin(scrid, 0, 0, 100, 100);/* 座標(100,100)-(100,200)を結ぶ黄色い点線を描画 */grl_set_col(scrid, 0xffe0);
grl_set_ptn(scrid, 0xaaaa);
grl_dra_lto(scrid, 100, 200):}11

グラフィックスライブラリ ユーザーズガイド

使用するリソース
グラフィックスライブラリが使用する OS のリソースの数は nogrlc.h の中に GRL_N...で始まるマクロ名で定義されています。グラフィックスライブラリを使用するアプリケーションでは、以下のように
カーネルコンフィグレーションでグラフィックスライブラリの ID 使用数を加算してください。

例)#include "nogrlc.h"#define TSKID_MAX#define SEMID_MAX#define FLGID_MAX#define MBXID_MAX#define MBFID_MAX#define PORID_MAX#define MPLID_MAX#define MPFID_MAX#define DTQID_MAX#define MTXID_MAX#define ISRID_MAX#define CYCNO_MAX#define ALMNO_MAX

5+GRL_NTSK
2+GRL_NSEM
1+GRL_NFLG
4+GRL_NMBX
1+GRL_NMBF
1+GRL_NPOR
1+GRL_NMPL
1+GRL_NMPF
1+GRL_NDTQ
1+GRL_NMTX
1+GRL_NISR
1+GRL_NCYC
1+GRL_NALM/* タスク ID 使用数 *//* セマフォ ID 使用数 *//* イベントフラグ ID 使用数 *//* メイルボックス ID 使用数 *//* メッセージバッファ ID 使用数 *//* ランデブ用ポート ID 使用数 *//* 可変長メモリプール ID 使用数 *//* 固定長メモリプール ID 使用数 *//* データキューID 使用数 *//* ミューテックス ID 使用数 *//* 割り込みサブルーチン ID 使用数 *//* 周期起動ハンドラ ID 使用数 *//* アラームハンドラ ID 使用数 */#include "nocfg4.h"※ 上記の例で、5,2,1,4…はアプリケーションが使用する各リソース数の例です。

12

グラフィックスライブラリ ユーザーズガイド

コンフィグレーション
グラフィックスドライバタスクの優先度とスタックサイズ、生成できる画面の最大数、キューイング
できる描画メッセージの最大数は nogrlc.h に定義されています。各マクロの既定値と意味は次の通り
です。

マクロ名

既定値

意味

GRL_TSK_PRI

0

GRL_TSK_SSZ

1024

GRL_SCRID_MAX

8

生成できる画面の最大数

GRL_MPF_QCNT

16

キューイングできる描画メッセージの最大数

ドライバタスク優先度※
ドライバタスクスタックサイズ※0 はグラフィックスライブラリの初期化を行ったアプリケーションタスクと同じ優先度

アプリケーションのコンフィグレーションファイルで#include "nogrlc.h"の前にこれらのマクロの値を定義することにより、これらの値をユーザーがカスタマイズすることができます。

例)#define GRL_TSK_PRI

4

ドライバタスクプライオリティを 4 に設定#define GRL_SCRID_MAX

10

生成できる画面の最大数を 10 に設定#include "nogrlc.h"13

グラフィックスライブラリ ユーザーズガイド

ダブル・バッファリング
ダブル・バッファリングとは、VRAM を 2 画面分用意して非表示の VRAM に描画を行い、描画が完了した時点で表示中の VRAM と切り替えることにより、ちらつきの無い、
滑らかな表示を行う手法のことです。
グラフィックスライブラリ API を使用してダブル・バッファリングを行う手順は次の通りです。

①

grl_set_buf によって現在表示していない VRAM 領域を描画領域として選択します。

②

選択した描画領域に対して描画を行います。

③

描画が完了したら grl_set_vrm によって描画領域を表示します。

④①～③を繰り返します。

例)
for (i = 0; i < 1000; i++) {bnum ^= 1;
grl_set_buf(SCRID, bnum);①描画バッファを変更

grl_set_col(SCRID, COLOR_BLACK);
grl_set_fnt(SCRID, FONT_GAIJI24, 24, 24, 0);for (y = 0; y < DISP_H; y += 24) {grl_dra_txt(SCRID, 0, y, buf[bnum]);②前回描画した数字を黒で消去}

ito0u(buf[bnum], i, DISP_W / 24);
grl_set_col(SCRID, COLOR_RED);
grl_set_fnt(SCRID, FONT_GAIJI24, 24, 24, 0);for (y = 0; y < DISP_H; y += 24) {grl_dra_txt(SCRID, 0, y, buf[bnum]);②数字を赤で描画}
grl_set_vrm(SCRID, bnum);③LCD に表示}

14

グラフィックスライブラリ ユーザーズガイド

第 2 章 API 仕様
grl_ini
機能

グラフィックスライブラリの初期化

形式

ER grl_ini(void)

説明

グラフィックスコントローラの初期化、オブジェクト(タスク、メモリプール、メールボックス)の生成、グラフィックスドライバタスクの起動を行います。

戻値

E_OK

正常終了

E_OBJ

既に初期化済み

E_TMOUTLCD コントローラドライバの初期化失敗

その他

オブジェクト生成失敗時の NORTi エラーコード

grl_ext
機能

グラフィックスライブラリの終了

形式

ER grl_ext(void)

説明

グラフィックスコントローラの終了処理、オブジェクトの削除、グラフィックスドライバ
タスクを終了と削除を行います。

戻値

E_OK

正常終了

E_NOEXS

グラフィックスライブラリが初期化されていない

15

グラフィックスライブラリ ユーザーズガイド

grl_set_pal
機能

カラーパレットの設定

形式

ER grl_set_pal(VP pal, UH num)

説明

pal

パレットデータ先頭アドレスnum

パレットデータに格納されているエントリ数

パレットデータをグラフィックスコントローラカラーパレットに設定します。
pal にはグラフィックスコントローラが対応するカラーフォーマットのパレットエントリを格納したパレットデータの先頭アドレスを指定します。
例)RGB888 パレットデータエントリフォーマット

MSB
全て 0

LSB
R:8 ビット

G:8 ビット

B:8 ビット

num にはパレットデータに格納されているエントリ数を指定します。

戻値

E_OK

正常終了

16

グラフィックスライブラリ ユーザーズガイド

grl_get_pal
機能

カラーパレットの取得

形式

ER grl_get_pal(VP pal, UH num)

説明

pal

パレットデータを格納する先頭アドレスnum

パレットデータを格納するエントリ数

グラフィックスコントローラのカラーパレットに設定されているパレットデータを取得します。 pal にはグラフィックスコントローラが対応するカラーフォーマットのパレットエ
ントリを格納するパレットデータの先頭アドレスを指定します。
例)RGB888 パレットデータエントリフォーマット

MSB
全て 0

LSB
R:8 ビット

G:8 ビット

num にはパレットデータに格納するエントリ数を指定します。

戻値

E_OK

正常終了

17

B:8 ビットグラフィックスライブラリ ユーザーズガイド

grl_cre_scr
機能

画面の生成

形式

ER grl_cre_scr(ID scrid, T_CSCR *pk_cscr)

説明

scrid

画面 ID

pk_cscr

画面生成情報パケットへのポインタ

画面を生成します。具体的には、画面 ID で識別される画面管理ブロックに画面属性が保持され、各描画 API の実行が可能となります。
画面生成情報パケットの構造は次の通りです。
typedef struct t_cscr{

ATR scratr;

画面属性

const char *name;

画面名へのポインタ} T_CSCR;

scratr には以下のいずれかを設定してください。
TSA_GRL_ROT0

画面を回転しない

TSA_GRL_ROT90

画面を右回りに 90 度回転して表示

TSA_GRL_ROT180 画面を右回りに 180 度回転して表示
TSA_GRL_ROT270 画面を右回りに 270 度回転して表示

name は現在未使用です。NULL を設定してください。
pk_cscr に NULL を設定した場合、既定の属性として TSA_GRL_ROT0 が設定されます。
その他の画面属性初期値は次の通りです。

戻値

ペンカラー

白

線種

実線

ペン位置

(0,0)

E_OK

正常終了

E_ID

画面 ID が範囲外

E_OBJ

画面が既に生成されている

18

グラフィックスライブラリ ユーザーズガイド

grl_set_col, grl_get_col
機能

ペンカラーの設定・取得

形式

ER grl_set_col(ID scrid, UH col)ER grl_get_col(ID scrid, UH *col)
scrid

画面 ID

col

ペンカラー

説明

scrid で指定される画面のペンカラーを設定・取得します。

戻値

E_OK

正常終了

E_ID

画面 ID が範囲外

E_NOEXS

画面が未生成E_PAR

NULL ポインタを指定

grl_set_ptn, grl_get_ptn
機能

線種の設定・取得

形式

ER grl_set_ptn(ID scrid, UH ptn)
ER grl_get_ptn(ID scrid, UH *ptn)
scrid

画面 ID

ptn

線種

説明

scrid で指定される画面の線種を設定・取得します。

戻値

E_OK

正常終了

E_ID

画面 ID が範囲外

E_NOEXS

画面が未生成E_PAR

NULL ポインタを指定

19

グラフィックスライブラリ ユーザーズガイド

grl_set_pos, grl_get_pos
機能

ペン位置の設定・取得

形式

ER grl_set_pos(ID scrid, H x, H y)
ER grl_get_pos(ID scrid, H *x, H *y)
scrid

画面 ID

x

ペン位置の X 座標y

ペン位置の Y 座標

説明

scrid で指定される画面のペン位置を設定・取得します。

戻値

E_OK

正常終了

E_ID

画面 ID が範囲外

E_NOEXS

画面が未生成E_PAR

座標値が範囲外または NULL ポインタを指定

20

グラフィックスライブラリ ユーザーズガイド

grl_set_fnt, grl_get_fnt
機能

フォント種別、サイズ、属性の設定・取得

形式

ER grl_set_fnt(ID scrid, VP font, UH w, UH h, UH attr)
ER grl_get_fnt(ID scrid, VP *font, UH *w, UH *h, UH *attr)

説明

scrid

画面 ID

font

フォント種別w

1 文字の幅h

1 文字の高さ

attr

フォント属性scrid で指定される画面のフォント種別、サイズ、属性を設定・取得します。
font に指定できるフォント種別は次の 3 種類です。
FONT_WEB14

14×14 ドット・日本語フォント

FONT_JIS16

16×16 ドット・ゴシック体日本語フォント

FONT_JIS24

24×24 ドット・明朝体日本語フォント

FONT_WEB14 を使用する場合は、「Web Browser for NORTi」ライブラリをアプリケーションにリンクしてください。
1 文字の幅と高さ w と h に指定できるのはフォント本来のサイズとその 2 倍、または 0 です。
0 を指定した場合はフォント本来のサイズに設定されます。

例) FONT_JIS16 の場合
w = 0 , h = 0 の場合

16×16 ドットw = 16, h = 16 の場合

16×16 ドットw = 32, h = 32 の場合

32×32 ドットその他の場合非表示

フォント属性は将来の拡張用です。通常 0 を設定してください。
設定されなかったフォントのデータはアプリケーションにリンクされませんので、無駄なコードサイズを節約することができます。

戻値

E_OK

正常終了

E_ID

画面 ID が範囲外

E_NOEXS

画面が未生成

E_PAR

font に NULL ポインタを設定

21

グラフィックスライブラリ ユーザーズガイド

grl_dra_dot
機能

点の描画

形式

ER grl_dra_dot(ID scrid, H x, H y)

説明

scrid

画面 ID

x

X 座標

y

Y 座標

座標(x,y)の位置に画面のペンカラーで点を描画します。正常終了した場合、画面のペン位
置は座標(x,y)となります。

戻値

E_OK

正常終了

E_ID

画面 ID が範囲外

E_NOEXS

画面が未生成E_PAR

座標値が範囲外

grl_dra_lin
機能

線の描画

形式

ER grl_dra_lin(ID scrid, H x1, H y1, H x2, H y2)

説明

scrid

画面 ID

x1

始点の X 座標y1

始点の Y 座標x2

終点の X 座標y2

終点の Y 座標

始点(x1,y1)、終点(x2,y2)を端点とする直線を、画面のペンカラー、線種で描画します。
正常終了した場合、画面のペン位置は座標(x2,y2)となります。

戻値

E_OK

正常終了

E_ID

画面 ID が範囲外

E_NOEXS

画面が未生成E_PAR

座標値が範囲外22グラフィックスライブラリ ユーザーズガイド

grl_dra_lto
機能

ペン位置からの線の描画

形式

ER grl_dra_lto(ID scrid, H x, H y)

説明

scrid

画面 ID

x

終点の X 座標y

終点の Y 座標

画面のペン位置を始点、(x,y)を終点とする直線を、画面のペンカラー、線種で描画します。
正常終了した場合、画面のペン位置は座標(x,y)となります。

戻値

E_OK

正常終了

E_ID

画面 ID が範囲外

E_NOEXS

画面が未生成E_PAR

座標値が範囲外

grl_dra_rec
機能

矩形の描画

形式

ER grl_dra_rec(ID scrid, H x, H y, UH w, UH h)

説明

scrid

画面 ID

x

左上頂点の X 座標y

左上頂点の Y 座標

w

幅

h

高さ

左上頂点の座標(x,y)、幅 w、高さ h の矩形を、画面のペンカラー、線種で描画します。画
面のペン位置は変化しません。

戻値

E_OK

正常終了

E_ID

画面 ID が範囲外

E_NOEXS

画面が未生成E_PAR

座標値または幅、高さが範囲外
23グラフィックスライブラリ ユーザーズガイド

grl_fil_rec機能

矩形の描画(塗りつぶし)形式

ER grl_fil_rec(ID scrid, H x, H y, UH w, UH h, UH col)

説明

scrid

画面 ID

x

左上頂点の X 座標y

左上頂点の Y 座標

w

幅

h

高さ

col

塗りつぶし色左上頂点の座標(x,y)、幅 w、高さ h の矩形を、画面のペンカラー、線種で描画し、矩形内を色 col で塗りつぶします。画面のペン位置は変化しません。

戻値

E_OK

正常終了

E_ID

画面 ID が範囲外

E_NOEXS

画面が未生成E_PAR

座標値または幅、高さが範囲外

24グラフィックスライブラリ ユーザーズガイド

grl_dra_cir
機能

円の描画

形式

ER grl_dra_cir(ID scrid, H x, H y, UH r)

説明

scrid

画面 ID

x

中心点の X 座標y中心点の Y 座標r

半径中心点の座標(x,y)、半径 r の円を、画面のペンカラー、線種で描画します。画面のペン位置は変化しません。

戻値

E_OK

正常終了

E_ID

画面 ID が範囲外

E_NOEXS

画面が未生成E_PAR

座標値または半径が範囲外

25グラフィックスライブラリ ユーザーズガイド

grl_cpy_vrm
機能

VRAM 上のデータコピー

形式

ER grl_cpy_vrm(ID scrid, H dx, H dy, H sx, H sy, UH w, UH h)

説明

scrid

画面 ID

dx

コピー先左上頂点 X 座標dy

コピー先左上頂点 Y 座標sx

コピー元左上頂点 X 座標sy

コピー元左上頂点 Y 座標

w

コピー元幅

h

コピー元高さVRAM 上で、左上座標(sx,sy)、幅 w、高さ h の矩形の位置にあるデータを、左上座標(dx,dy)、の位置にコピーします。画面のペン位置は変化しません。

戻値

E_OK

正常終了

E_ID

画面 ID が範囲外

E_NOEXS

画面が未生成E_PAR

座標値または幅、高さが範囲外

26

グラフィックスライブラリ ユーザーズガイド

grl_cpy_img
機能

画像データを VRAM 上へコピー

形式

ER grl_cpy_img(ID scrid, H dx, H dy, UH w, UH h, UH *img)

説明

scrid

画面 ID

x

コピー先左上頂点 X 座標y

コピー先左上頂点 Y 座標w

画像データ幅h

画像データ高さ

img

画像データ先頭アドレス

幅 w、高さ h の画像データを VRAM 上の左上座標(x,y)、幅 w、高さ h の位置にコピーします。
画面のペン位置は変化しません。

戻値

E_OK

正常終了

E_ID

画面 ID が範囲外

E_NOEXS

画面が未生成E_PAR

座標値または幅、高さが範囲外または NULL ポインタを指定

grl_clr_scr
機能

画面全体の塗りつぶし

形式

ER grl_clr_scr(ID scrid, UH col)
scrid

画面 ID

col

塗りつぶし色説明

画面全体を色 fcol で塗りつぶします。

戻値

E_OK

正常終了

E_ID

画面 ID が範囲外

E_NOEXS

画面が未生成27

グラフィックスライブラリ ユーザーズガイド

grl_dra_txt
機能

文字列の描画形式

ER grl_dra_txt(ID scrid, H x, H y, char *txt)

説明

scrid

画面 ID

x

文字列左上 X 座標

y

文字列左上 Y 座標

txt

文字列へのポインタ

txt で指定された文字列を、画面のペンカラー、フォント種別、フォントサイズで描画します。x, y は先頭文字の左上の座標を指定してください。文字列 txt は最大 256 バイト＋null
文字'\0'で指定できます。半角 ASCII コード文字の表示は現在未対応です。アルファベッ
トや英数字は全角文字を指定してください。文字列中に半角 ASCII コード文字が含まれる
場合は、半角サイズの中抜き四角(☐)を描画します。画面のペン位置は変化しません。

戻値

E_OK

正常終了

E_ID

画面 ID が範囲外

E_NOEXS

画面が未生成E_PAR

座標値が範囲外または NULL ポインタを指定

E_OBJ

画面のフォントが未設定

28

グラフィックスライブラリ ユーザーズガイド

grl_get_tid
機能

ドライバタスク ID の取得

形式

ID grl_get_tid(void)

説明

ドライバタスクの ID を返します。

戻値

正の値

ドライバタスク ID

0

ドライバタスクが未生成

grl_chg_pri
機能

ドライバタスクプライオリティの設定

形式

ER grl_chg_pri(PRI tskpri)
tskpri

ドライバタスクプライオリティ

説明

グラフィックスライブラリドライバタスクのプライオリティを設定します。

戻値

E_OK

正常終了

その他

NORTi システムコール chg_pri の戻値29グラフィックスライブラリ ユーザーズガイド

grl_set_buf
機能

描画を行う VRAM 領域の設定

形式

ER grl_set_buf(ID scrid, UH bnum)

説明

scrid

画面 ID

bnum

VRAM 番号bnum の値によって、グラフィックスライブラリが描画を行う VRAM 領域の開始アドレスを以下のように設定します。設定は scrid 以外の全ての画面 ID に対しても適用されます。
0

グラフィックスコントローラの初期化で VRAM 領域の先頭として設定した
アドレス

0 以外

戻値

0 のときのアドレス＋(1 ラインのバイト数×画面の高さ)のアドレス

E_OK

正常終了

E_ID

画面 ID が範囲外

E_NOEXS

画面が未生成grl_set_vrm
機能

画面に表示する VRAM 領域の設定

形式

ER grl_set_vrm(ID scrid, UH vnum)

説明

scrid

画面 ID

vnum

VRAM 番号vnum の値によって、画面に表示する VRAM 領域の開始アドレスを以下のように設定します。
設定は scrid 以外の全ての画面 ID に対しても適用されます。
0

グラフィックスコントローラの初期化で VRAM 領域の先頭として設定した
アドレス

0 以外

戻値

0 のときのアドレス＋(1 ラインのバイト数×画面の高さ)のアドレス

E_OK

正常終了

E_ID

画面 ID が範囲外

E_NOEXS

画面が未生成30

グラフィックスライブラリ ユーザーズガイド

grl_cpy_buf
機能

VRAM 領域間のデータコピー

形式

ER grl_cpy_buf(ID scrid, UH bnum)

説明

scrid

画面 ID

bnum

VRAM 番号bnum の値によって、VRAM 間のデータコピーを以下のように行います。
0

VRAM1 のデータを VRAM0 にコピーします。

0 以外

VRAM0 のデータを VRAM1 にコピーします。

VRAM0 と VRAM1 とは以下の VRAM 領域を指します。

戻値

VRAM0

grl_set_vrm(scrid, 0)で画面に表示される VRAM 領域

VRAM1

grl_set_vrm(scrid, 1)で画面に表示される VRAM 領域

E_OK

正常終了

E_ID

画面 ID が範囲外

E_NOEXS

画面が未生成31

グラフィックスライブラリ ユーザーズガイド

grl_wai_end
機能

描画の完了待ち形式

ER grl_wai_end(void)

説明

グラフィックスドライバタスクへ起床を要求するメッセージを送り、待ち状態へ移行します。グラフィックスドライバタスクでは、先にキューイングされていた描画メッセージを処理した後で、この起床要求を実行するので、発行済みの描画 API が実際に処理されたことの待ちに使えます。

戻値

補足

E_OK

正常終了

E_CTX

非タスクコンテキストで、または、ディスパッチ禁止状態で待ち実行

E_RLWAI

待ち状態を強制解除された(待ちの間に rel_wai を受け付け)

内部では待ちに slp_tsk を使用していますので、この API を発行したタスクに対して、他から wup_tsk を発行しないようにしてください。

32

グラフィックスライブラリ ユーザーズガイド

付録
フォント
グラフィックスライブラリは以下のフォントを内蔵しています。

JIS X 9051 準拠 表示装置用 16 ドット字形データ
文字表

JIS X 0208-1983

文字数6877 文字(非漢字 524 文字＋第一水準漢字 2965 文字＋第二水準漢字 3388 文字)

文字サイズ

16×16 ドット

字体

ゴシック体

JIS X 9052 準拠 ドットプリンタ用 24 ドット字形データ
文字表

JIS X 0208-1983

文字数6877 文字(非漢字 524 文字＋第一水準漢字 2965 文字＋第二水準漢字 3388 文字)

文字サイズ

24×24 ドット

字体

明朝体

33

グラフィックスライブラリ ユーザーズガイド

JIS X 9051 準拠 表示装置用 16 ドット字形データ

34

グラフィックスライブラリ ユーザーズガイド

35

グラフィックスライブラリ ユーザーズガイド36

グラフィックスライブラリ ユーザーズガイド37

グラフィックスライブラリ ユーザーズガイド

JIS X 9052 準拠 ドットプリンタ用 24 ドット字形データ

38

グラフィックスライブラリ ユーザーズガイド

39

グラフィックスライブラリ ユーザーズガイド

40グラフィックスライブラリ ユーザーズガイド

41

グラフィックスライブラリ ユーザーズガイド

42

グラフィックスライブラリ ユーザーズガイド

43

グラフィックスライブラリ ユーザーズガイド

44

グラフィックスライブラリ ユーザーズガイド45

グラフィックスライブラリ ユーザーズガイド

グラフィックスライブラリ ユーザーズガイド
株式会社ミスポhttp://www.mispo.co.jp/

一般的なお問い合わせsales@mispo.co.jp

技術サポートご依頼

norti@mispo.co.jp

46