NFB(4) — UNIX Programmer’s Manual
名称
nfb − NEWS 新しいフレームバッファデバイスのインタフェース
形式
mfb0 at iop addr ffe5d0 intr 44
cfb0 at iop addr ffe5d0 intr 44
pfbm0 at iop addr ffe5d0 intr 44
pfbc0 at iop addr ffe5d0 intr 44
qfbm[0−7] at iop addr ffe5d0 intr 44
qfbc[0−7] at iop addr ffe5d0 intr 44
/dev/mfb0
/dev/cfb0
/dev/pfbm0
/dev/pfbc0
/dev/qfbm[0−7]
/dev/qfbc[0−7]
#include <newsiop/framebuf.h>
解説
nfb インタフェースは、 NEWS フレームバッファデバイスへのアクセスを行います。 fb インターフェスとは別のデバイスを使用し、 複数のデバイスを同時にアクセスすることができます。
各デバイスのフレームバッファの大きさと表示領域は次のとうりです。
|バッファ |表示領域
---------------------------+---------------+------------
白黒 | |
NWB-512 | 2048 x 2048 | 816 x 1024
NWS-711,PWS-1520,1550 | 1024 x 1024 | 816 x 1024
---------------------------+---------------+------------
カラー | |
NWS-721,NWB-223,225(A),251 | 2048 x 1024 | 1280 x 1024
PWS-1560 | 1024 x 1024 | 1024 x 816
---------------------------+---------------+------------
グレイスケール | |
NWB-514 | 2048 x 2048 | 1280 x 1280
このフレームバッファのインタフェースによって、 データの読み書き、 ラスタ操作、 線引きなどが行えます。
操作は、 ioctl(2) システムコールを使用して行なわれます。 ioctl コールにより、 フレームバッファの操作と同様にユーザ定義 (ユーザスペース) ビットマップ上の操作ができます。
カラー
カラービットマップディスプレイのフレームバッファは、 8 (または 4) 個のプレーンから成り、 256 (または 16) 色が同時に表示されます。 赤、緑、青の 3 色は各 8 (または 4) ビットで表され、 ユーザは、 1670 万 (または 4096) 色のカラーパレットから色を選ぶことができます。 グレースケールビットマップディスプレイの場合も同様に、 4 個のプレーンからなり、 256 階調のうち 16 階調が同時に表示されます。
データタイプ
次のデータ構造体は、ビットマップ操作に使用されます。
typedef unsigned short Word;
#define BitsPerWord 16
typedef struct {
short x, y;
} lPoint;
typedef struct {
lPoint origin;
lPoint extent;
} lRectangle;
typedef struct {
char type; /∗ BM_FB、BM_MEM BM_0 または BM_1 ∗/
char depth; /∗ ビットマップのプレーン数 ∗/
unsigned short width; /∗ 幅(ワード単位) ∗/
lRectangle rect; /∗ 定義領域 ∗/
Word ∗base; /∗ BM_MEM 用 ∗/
} lBitmap;
#define BM_FB 0 /∗ フレームバッファ ∗/
#define BM_MEM 1 /∗ メモリ内のビットマップ(XY 形式) ∗/
#define BM_0 2 /∗ データ ‘0’ の仮想ビットマップ ∗/
#define BM_1 3 /∗ データ ‘1’ の仮想ビットマップ ∗/
#define BM_LBP 4 /∗ LBP フレームバッファ ∗/
Word は、 サインなしの 16 ビット(1 ワード)と、 定義されます。
lPoint 構造体は、 ポイントのために使用します。
lRectangle の構造体は、 矩形を作ることに使用されます。 その origin (原点) は、 左上角にあり、 extent は矩形の縦と横の長さを示します。
lBitmap の構造体は、 ビットマップを定義するために使用されます。 type のフィールドは、 ビットマップがメインメモリ内にあるか、 フレームバッファ内にあるかを示します。 BM_FB は、 フレームバッファ内のビットマップであり、 BM_MEM は、 メインメモリ内のビットマップです。 BM_MEM ビットマップは、 XY 形式でデータが格納されています。 また、 プレーン 0 のデータの次にプレーン 1 のデータがあり、 以降その順でずっと続いています。 BM_0 及び BM_1 は仮想ビットマップで、 そのデータは、 すべて 0 または 1 です。 BM_0/BM_1 ビットマップはラスタ操作において、 ソースビットマップとしてのみ使用することができます。 depth フィールドは、 ビットマップのプレーン数を与えます。 白黒フレームバッファのビットマップはプレーン数 1 をもち、 カラーフレームバッファでは 8 または 4 のプレーン数をもっています。 メインメモリ中のビットマップや BM_0/BM_1 ビットマップでは、 カラー表示が使用されているかいないかにかかわらず、 1 または 8, 4 プレーン数をもつことができます。
BM_MEM ビットマップの width (横幅) は、 X 方向のワード数で与えます。 width は、 BM_FB と BM_0/BM_1 ビットマップに指定することはできません。
rect フィールドは、 ビットマップの大きさを与えます。 この領域内でのみ、操作が可能です。
base フィールドは、 データのスタートポイントを指定します。
BM_MEM ビットマップの場合、 データはワード境界で整列させなければなりません。 最初の列の最初のワードの最初のビットが、 rect.origin で指定した場所に対応します。 これは、 1 のプレーン数をもつビットマップが (width ∗ rect.extent.y) ワードを必要とすることを意味します。 ここで、 width は rect.extent.x ビットを十分に含む大きさであるものとします。
IOCTL
FBIOCNSETDIM
FBIOCNGETDIM
これらは、 ユーザがディスプレイの輝度を調べたり設定するためのものです。 輝度には、 NWB-512 及び NWS-711, PWS-1520, PWS-1550 の場合 0 から 3 までのレベルがあります。 0 が最も明るく、 デフォルト値になっています。 NWB-251 及び NWB-514, PWS-1560 の場合はレベルがなく ON/OFF のどちらかです。 NWB-225 及び NWB-223, NWS-721 には、 この機能がありません。
int dimmer_level;
ioctl(fildes, FBIOCNSETDIM, &dimmer_level);
ioctl(fildes, FBIOCNGETDIM, &dimmer_level);
FBIOCNBITBLT
このリクエストは、 2 オペランドのラスタ操作(bitblt)のためのものです。 ソースおよびデスティネーションビットマップは、 メインメモリまたはフレームバッファにあるものです。 BM_0/BM_1 ビットマップはソースのみに使用することができます。 ソースとデスティネーションビットマップのプレーン数は、 等しいか、 またはいずれかのビットマップのプレーン数が 1 でなければなりません。
/∗ 2 オペランド bitblt ∗/
typedef struct {
unsigned char func; /∗ ファンクションコード ∗/
char transp; /∗ 透過性 ∗/
int fore_color; /∗ フォアグラウンド色 ∗/
int aux_color; /∗ 補色 ∗/
int planemask; /∗ プレーン選択 ∗/
lBitmap srcBitmap; /∗ ソースビットマップ ∗/
lRectangle srcRect; /∗ ソース矩形 ∗/
lBitmap destBitmap; /∗ デスティネーションビットマップ ∗/
lRectangle destClip; /∗ クリップ矩形 ∗/
lPoint destPoint; /∗ デスティネーションポイント ∗/
} lBitblt;
/∗ 機能 ∗/
#define BF_0 0x0 /∗ 0 ∗/
#define BF_SDA 0x1 /∗ Src(ソース) & Dest(デスティネーション) ∗/
#define BF_SDIA 0x2 /∗ Src & ~Dest ∗/
#define BF_S 0x3 /∗ Src ∗/
#define BF_SIDA 0x4 /∗ ~Src & Dest ∗/
#define BF_D 0x5 /∗ Dest ∗/
#define BF_SDX 0x6 /∗ Src ^ Dest ∗/
#define BF_SDO 0x7 /∗ Src | Dest ∗/
#define BF_SDOI 0x8 /∗ ~(Src | Dest) ∗/
#define BF_SDXI 0x9 /∗ ~(Src ^ Dest) ∗/
#define BF_DI 0xa /∗ ~Dest ∗/
#define BF_SDIO 0xb /∗ Src | ~Dest ∗/
#define BF_SI 0xc /∗ ~Src ∗/
#define BF_SIDO 0xd /∗ ~Src | Dest ∗/
#define BF_SDAI 0xe /∗ ~(Src & Dest) ∗/
#define BF_1 0xf /∗ 1 ∗/
/∗ プレーンマスク ∗/
#define FB_PLANEALL 0xff
#define FB_PLANE0 0x1
#define FB_PLANE1 0x2
#define FB_PLANE2 0x4
#define FB_PLANE3 0x8
#define FB_PLANE4 0x10
#define FB_PLANE5 0x20
#define FB_PLANE6 0x40
#define FB_PLANE7 0x80
lBitblt 構造体は、 パラメータとして使用されます。 func フィールドは、 ラスタ操作の機能コードを示します。 transp フィールドは、 透過性に関するもので、 値は 0 または 1 です。 1 の場合、 0 の値をもつソースピクセルに対応するデスティネーションのピクセルは、 影響を受けません。
fore_color と aux_color のフィールドは、 ソースビットマップのプレーン数が 1 の場合、 意味を持ちません。 値 1 をもつソースビットは、 対応するデスティネーションのピクセルとの 操作を実行する前に、 fore_color (に対応したビットパターン) を値としてとります。 一方、 bitblt は、 その機能実行中、 値が 0 のソースビットは aux_color であるものとみなします。 たとえば、 func が BF_S (ソースからデスティネーションへのコピー) であるならば、 値 1 をもつソースビットに対応するピクセルが、 fore_color で表示され、 他のピクセルが aux_color で表示されます。
planemask フィールドは、 操作にどのプレーンを使用するかを指定します。 planemask 中の 1 は、 対応するプレーンを操作の対象とすることを bitblt に知らせます。 それが 0 であった場合には、 そのプレーンは無視されます。 ビット N は、 プレーン N と対応します。
フィールド srcBitmap と srcRect は、 どのソースビットマップを操作に使用するかということを示します。
フィールド destBitmap と destPoint は、 デスティネーションのビットマップを指定します。 destPoint は左上隅を示し、 ラスタ操作が行われる矩形の大きさは srcRect と同じです。 フィールド destClip は、 デスティネーションのどの部分をクリッピングするかを指定するために使用されます。
lBitblt bitblt;
ioctl(fildes, FBIOCNBITBLT, &bitblt);
FBIOCNBATCHBITBLT
このリクエストは、 多くの bitblt 操作をバッチ処理で実行するために使用されます。 ソースやデスティネーションのビットマップは、 各操作を通じて同じですが、 ソースの矩形とデスティネーションポイントは、 それぞれで違っていてもかまいません。
typedef struct {
lRectangle srcRect; /∗ ソース矩形 ∗/
lPoint destPoint; /∗ デスティネーションポイント ∗/
} lSrcDest
/∗
∗ batch bitblt
∗/
typedef struct {
unsigned char func; /∗ 機能コード ∗/
char transp; /∗ 透過性 ∗/
int fore_color; /∗ フォアグラウンド色 ∗/
int aux_color; /∗ 補色 ∗/
int planemask; /∗ プレーン選択 ∗/
lBitmap srcBitmap; /∗ ソースビットマップ ∗/
lBitmap destBitmap; /∗ デスティネーションビットマップ ∗/
lRectangle destClip; /∗ クリップ矩形 ∗/
int nSrcDest; /∗ リスト中の src-dest の数 ∗/
lSrcDest ∗srcDestList; /∗ src-dest 指定のポインタ ∗/
} lBatchBitblt;
#define MAX_BATCHBITBLT 1024 /∗ src-dest リストの最大数 ∗/
lBatchBitblt 構造体は、 lBitblt 構造体と似ており、 ソースとデスティネーションのビットマップを含んでいます。 srcDestList フィールドは、 ソース矩形のリストとデスティネーションポイントのリストを指定し、 その要素の数は nSrcDest フィールドに与えられます。
lBatchBitblt bbitblt;
ioctl(fildes, FBIOCNBATCHBITBLT, &bbitblt);
FBIOCNTILEBITBLT
このリクエストは、 ‘パターン塗りつぶし’ のラスタ操作で使用します。
/∗ タイル 2 オペランド bitblt ∗/
typedef struct {
unsigned char func; /∗ 機能コード ∗/
char transp; /∗ 透過性 ∗/
int fore_color; /∗ フォアグラウンド色 ∗/
int aux_color; /∗ 補色 ∗/
int planemask; /∗ プレーン選択 ∗/
lBitmap ptnBitmap; /∗ パターンビットマップ ∗/
lRectangle ptnRect; /∗ パターン矩形 ∗/
lPoint refPoint; /∗ 参照ポイント ∗/
lBitmap destBitmap; /∗ デスティネーションビットマップ ∗/
lRectangle destClip; /∗ クリップ矩形 ∗/
lRectangle destRect; /∗ デスティネーション矩形 ∗/
} lTileBitblt;
lTileBitblt 構造体は、 パラメータの受け渡しに使用されます。 ptnBitmap と ptnRect フィールドは、 使用するパターンを指定します。 refPoint フィールドは、 塗りつぶし操作の参照ポイントを示します。 これは、 その参照ポイントとパターンの左上隅が、 デスティネーションビットマップ上で一致するように作られるという意味です。 参照ポイントは、 デスティネーション矩形またはそのクリップ矩形の外側に指定することもできます。
lTileBitblt tbitblt;
ioctl(fildes, FBIOCNTILEBITBLT, &tbitblt);
FBIOCNPOLYLINE
このリクエストは、 ユーザがポリライン (直線) を引くためのものです。 ユーザは自由に、 線の色、 線のパターン、 ラスタ操作の機能コードを指定することができます。
/∗ 線 ∗/
typedef struct {
unsigned int lptn; /∗ ラインパターン ∗/
short np; /∗ ポイント数 ∗/
lPoint ∗plist; /∗ ポイントリスト ∗/
int fore_color; /∗ フォアグラウンド色 ∗/
int aux_color; /∗ 補色 ∗/
int planemask; /∗ プレーン選択 ∗/
char transp; /∗ 透過性 ∗/
unsigned char func; /∗ ラスタ操作機能コード ∗/
char dlpf; /∗ 最終ポイント描画フラグ ∗/
lRectangle clip; /∗ クリップ矩形 ∗/
lBitmap drawBM; /∗ 描画するビットマップ ∗/
} lPrimLine;
/∗ ラインパターン(例) ∗/
#define LINE_SLD (unsigned)0xffffffff /∗ ソリッド ∗/
#define LINE_DSH (unsigned)0xfcfcfcfc /∗ ダッシュ - ∗/
#define LINE_DOT (unsigned)0xcccccccc /∗ ドット . ∗/
#define LINE_DSHDOT (unsigned)0xfff18fff /∗ ダッシュドット -. ∗/
#define LINE_DSHDOTDOT (unsigned)0xff8c63ff /∗ ダッシュドットドット -.. ∗/
lPrimLine 構造体は、 ポリラインをリクエストするために使用します。 lptn フィールドを使って 32 ビットのラインパターンを指定することができます。 plist フィールドは、 呼び出しにおいて np ポイントの受け渡しに使用します。 np は、 ポイント数であって線の数ではありません。 fore_color、aux_color、planemask、transp と func フィールドの説明は、 FBIOCNBITBLT を参照してください。 dlpf フラグは、 リスト中の最後のポイントを描くか描かないかを指定します。 つまり、 フラグが 0 であればそのポイントは描かれず、 他の場合は描かれます。 閉じた図形を描く場合に、 このフィールドに 0 が使われます。 drawBM と clip フィールドは、 ビットマップとクリップ矩形を別々に指定するのに使用されます。
lPrimline primline;
ioctl(fildes, FBIOCNPOLYLINE, &primline);
FBIOCNDJPOLYLINE このリクエストは FBIOCNPOLYLINE と似ています。
FBIOCNPOLYLINE は、 連続する線分を描くため使用されますが、 FBIOCNDJPOLYLINE は不連続線に使用されます。 dlpf フィールドは、 各線セグメントの終点を描くか描かないかを指定するために使用されます。
lPrimline primline;
ioctl(fildes, FBIOCNDJPOLYLINE, &primline);
FBIOCNPOLYMARKER
このリクエストは、 ポリマーカーを描くために使用します。 これは、 指定したパターンといくつかのビットマップ間でラスタ操作を実行するためのものです。
/∗ マーカー ∗/
typedef struct {
short np; /∗ ポイント数 ∗/
lPoint ∗plist; /∗ ポイントリスト ∗/
lRectangle ptnRect; /∗ パターン矩形 ∗/
lBitmap ptnBM; /∗ パターンビットマップ ∗/
int fore_color; /∗ フォアグラウンド色 ∗/
int aux_color; /∗ 補色 ∗/
int planemask; /∗ プレーン選択 ∗/
char transp; /∗ 透過性 ∗/
unsigned char func; /∗ ラスタ操作機能コード ∗/
lRectangle clip; /∗ クリップ矩形 ∗/
lBitmap drawBM; /∗ 描画するビットマップ ∗/
} lPrimMarker;
lPrimMaker 構造体は、 ポリマーカーの描画に使用されます。 ptnBM と ptnRect フィールドは、 ラスタ操作でどのパターンを使用するかを指定します。 フィールド plist と np は、 ポイントリストとポイント数をそれぞれ与えます。
lPrimMarker primmarkers;
ioctl(fildes, FBIOCNPOLYMARKER, &primmaker);
FBIOCNRECTANGLE
矩形を与えられたパターンで埋めます。
/∗ 矩形を塗りつぶす ∗/
typedef struct {
lRectangle rect; /∗ 矩形 ∗/
lPoint refPoint; /∗ 塗りつぶし参照ポイント ∗/
lRectangle ptnRect; /∗ パターン矩形 ∗/
lBitmap ptnBM; /∗ パターンビットマップ ∗/
int fore_color; /∗ フォアグラウンド色 ∗/
int aux_color; /∗ 補色 ∗/
int planemask; /∗ プレーン選択 ∗/
char transp; /∗ 透過性 ∗/
unsigned char func; /∗ ラスタ操作機能コード ∗/
lRectangle clip; /∗ クリップ矩形 ∗/
lBitmap drawBM; /∗ 描画するビットマップ ∗/
} lPrimRect;
このリクエストは、 lPrimRect 構造体を使用します。 rect フィールドは、 矩形を指定し、 一方、 ptnBM と ptnRect フィールドは、 その矩形を塗りつぶすパターンを指定します。 refPoint フィールドは、 パターンの左上隅に一致させるポイントを含みます。 refPoint は、 矩形とクリップ内にある必要はありません。
lPrimRect rect;
ioctl(fildes, FBIOCNRECTANGLE, &rect);
FBIOCNFILLSCAN
パターンによる塗りつぶしが、 指定された走査線にそって実行されます。
/∗ 走査線配列 ∗/
#define SSCANL
typedef struct {
short y;
short x0, x1;
} lScanl;
/∗ パターンを塗りつぶす ∗/
typedef struct {
short nscan; /∗ 走査数 ∗/
lScanl ∗scan; /∗ 走査線データ ∗/
lPoint refPoint; /∗ 塗りつぶし参照ポイント ∗/
lRectangle ptnRect; /∗ パターン矩形 ∗/
lBitmap ptnBM; /∗ パターンビットマップ ∗/
int fore_color; /∗ フォアグラウンド色 ∗/
int aux_color; /∗ 補色 ∗/
int planemask; /∗ プレーン選択 ∗/
char transp; /∗ 透過性 ∗/
unsigned char func; /∗ ラスタ操作機能コード ∗/
lRectangle clip; /∗ クリップ矩形 ∗/
lBitmap drawBM; /∗ 描画するビットマップ ∗/
} lPrimFill;
lScanl 構造体は、 走査線のために使用します。 一方、 lPrimFill 構造体は、 すべてのパラメータの受け渡しに使用します。 scan フィールドは走査線の配列へのポインタを含み、 nscan フィールドは何本の走査線があるかを示します。 パターンは、 ptnBM と ptnRect フィールドを使用することによって指定します。 また、 refPoint は、 パターンの左上隅に設定しておく必要のある参照ポイントです。
lPrimFill fill;
ioctl(fildes, FBIOCNFILLSCAN, &fill);
FBIOCNTEXT
文字列が指定したフォントで書き込まれます。 使用されるフォントは、 ビットマップフォントや ROM フォントです。
/∗ テキスト ∗/
typedef struct {
char type; /∗ ROM フォント、etc ∗/
short len; /∗ 文字列長 ∗/
unsigned char ∗str; /∗ 文字列 ∗/
lPoint p;
int dx, dy; /∗ ベクトル (左へ 16 bit シフトされている) ∗/
char ex_factor; /∗ 拡大ファクタ ∗/
lPoint fp; /∗ ビットマップフォント左上 ∗/
short width, height; /∗ フォント幅、フォントの高さ ∗/
short column; /∗ 1 列の文字数 ∗/
lBitmap fontBM; /∗ フォントビットマップ ∗/
int fore_color; /∗ フォアグラウンド色 ∗/
int aux_color; /∗ 補色 ∗/
char transp; /∗ 透過性 ∗/
unsighed char func; /∗ ラスタ操作機能コード ∗/
lRectangle clip; /∗ クリップ矩形 ∗/
lBitmap drawBM; /∗ 描画するビットマップ ∗/
} lPrimText;
/∗ ビットマップフォントタイプ ∗/
#define ROM_ASCII 0
#define ROM_KANJI 1
#define ASCII 2
文字を書くためには、 lPrimText 構造体を使用しなければなりません。 type フィールドは、 どのフォントを使用するかを示します。
ROM_ASCIIROM font (1 バイトコード)
ROM_KANJIROM font (JIS 漢字コード)
ASCIIビットマップフォント(1 バイトコード)
len フィールドには、 バイト単位で文字列の長さを与えます。 漢字を使用する場合、 これが文字数と一致しないことに注意してください。 str フィールドは、 文字列へのポインタです。 p フィールドは、 最初の文字の左上角に一致するポイントにします。 dx と dy フィールドは、 文字列を書く方向を示します。 たとえば、 前に書かれた文字の 26 ドット右に水平に文字を書くとき、 dx = 26 << 16; dy=0 というように使用します。 ex_factor フィールドは、 水平方向の拡大ファクタを示します。 たとえば、1 であれば通常の幅になり、 2 であればその幅は 2 倍になります。 fp、width、 height、column フィールドは、 フォントビットマップを定義します。 フォントビットマップの左上隅は fp で、 文字の幅や高さは、 width と height によって決まります (文字の大きさは、一定であり、 可変ピッチのフォントは、 サポートされていません)。 column フィールドには、 一列の文字数が入ります。 フィールド first_chr と last_chr は、 フォントビットマップの中にある最初と最後の文字を示します。
lPrimtText text;
ioctl(fildes, FBIOCNTEXT, &text);
FBIOCNGETSCRTYPE
このリクエストは、 ビットマップディスプレイの型を返します。
/∗
∗ スクリーンタイプ
∗/
typedef struct {
short colorwidth; /∗ カラー幅 ∗/
short plane; /∗ プレーン数 ∗/
char type; /∗ デバイスタイプ ∗/
char unit; /∗ ユニットナンバー ∗/
lRectangle bufferrect; /∗ フレームバッファ領域 ∗/
lRectangle visiblerect; /∗ 表示画面領域 ∗/
} lScrType;
lScrType 構造体は、 パラメータを受け渡すために使用されます。 colorwidth フィールドは、 カラーパレットの赤、緑、青の各値に使われるビット数を示します。 幅は 4 または 8 です。 4 ならばバイト中の上位の 4 ビットが使用され、 8 ならば 8 ビット全部が使用されます。 plane フィールドはプレーンの数を示し、 1 ならばモノクロディスプレイであり、 8 (または 4) ならばカラーディスプレイまたはグレースケールディスプレイです。 type フィールドはビットマップディスプレのタイプを示し、 以下のようにインタフェースボードに固有の値が割り当てられています。
#define FB_NWB512 1
#define FB_NWB225 2
#define FB_POPM 3
#define FB_POPC 4
#define FB_NWB514 5
#define FB_NWB251 6
unit フィールドは同じインタフェースを複数枚使用する場合に、 ボード上のディップスイッチで選択されたアドレス順にボードの番号を示します。 bufferrect フィールドは、 フレームバッファの大きさを、 visiblerect フィールドは、 フレームバッファの表示部分を示します。
lScrType scrtype;
ioctl(fildes, FBIOCNGETSCRTYPE, &scrtype);
FBIOCNGETPALETTE
FBIOCNSETPALETTE
これらは、 カラーパレットデータの読み書きをします。
/∗
∗ カラー
∗/
typedef struct {
short index; /∗ パレット番号 ∗/
struct {
short r, g, b;
} rgb;
} sPalette;
typedef struct {
int count;
sPalette ∗palette;
} lPalette;
パレット番号は、 0 から 255 (8 プレーン) または 0 から 16 (4 プレーン) の範囲です。 palette フィルドは、 count で示された個数の sPalette 構造対の配列へのポインタです。 FBIOCNGETPALETTE は、 index フィールドに渡されたパレット番号を要求します。 rgb フィールドは、 コールされた後に書き込まれます。 FBIOCNSETPALETTE は、 index と rgb フィールドをユーザが設定するために使用します (rgb = 赤、緑、青) 。
lPalette palette;
ioctl(fildes, FBIOCNGETPALETTE, &palette);
ioctl(fildes, FBIOCNSETPALETTE, &palette);
関連ファイル
/dev/mfb0
/dev/cfb0
/dev/pfbm0
/dev/pfbc0
/dev/qfbm[0−7]
/dev/qfbc[0−7]
関連事項
バグ
NWS-1830/50 では、 異なるプロセスから同時にアクセスした場合にシステムダウンする場合があります。
FBIOCNBATCHBITBLT などのパラメータとして配列を必要とするリクエストは、 配列の大きさに制限があります。
LBP インターフェスはまだサポートされていません。
NEWS-OSRelease 3.3