サイトトップへ
OSASK.NET
  サイトトップへ       新掲示板(閉鎖済)   Wiki(凍結済)   旧掲示板(廃止済)   ニュース(廃止済)  
2: 2011-03-08 (火) 13:34:11 k-tan ソース 3: 2011-03-08 (火) 22:12:05 名無しさん[C1tKa0P8FJM] ソース
Line 39: Line 39:
--r, g, b はそれぞれ0~255が有効。これらを0x000000~0xffffffの整数に変換する。 --r, g, b はそれぞれ0~255が有効。これらを0x000000~0xffffffの整数に変換する。
--[01f以降] drawStr()+-[01f以降] drawStr(int x0, int y0, int rx, int ry, const char *s, ...) 
 +--文字列を描画する。printfとの違いは、描き始めの位置をピクセル単位で制御できることと、重ねあわせができることと、拡大ができることである。 
 +--rxやryは倍率で、整数倍のみ指定できる。
--[01f以降] setMode()+-[01f以降] setMode(int flags) 
 +--flagsは以下のものが指定できる。 
 + #define BL_PSET    0x00000004 
 + #define BL_PAND    0x00000005 
 + #define BL_POR      0x00000006 
 + #define BL_PXOR    0x00000007 
 + #define BL_DBGFLSH  0x00000040 
 + #define BL_RLSFLSH  0x00000060 
 + #define BL_DEBUG    BL_DBGFLSH 
 + #define BL_RELEASE  BL_RLSFLSH 
 +--PSET, PAND, POR, PXOR はどれか一つを指定することができる。デフォルトでは PSET になっている。指定しなければ変更されない。 
 +---これらは setPix(), drawLine(), drawRect(), fillRect(), fillOval(), drawStr() に影響する。 
 +--DBGFLSH, RLSFLSH もどれか一つを指定することができる。デフォルトでは DBGFLSH になっている。指定しなければ変更されない。 
 +---これはフラッシュ忘れを分かりやすくする。リリースモードにするとフラッシュ忘れが分かりにくくなる代わりに(忘れていても結構それなりに画面に反映されてしまうことがある)、メモリが節約され、速度も向上する。 
 +---リリースモードにしたいときは、一番最初に setMode(BL_RELEASE); と書くのが良いだろう。
-[01f以降] openVWin(int n, int sx, int sy) -[01f以降] openVWin(int n, int sx, int sy)
Line 51: Line 67:
--描画関数がどの画面に対して描画を行うかを指定する。 openVWin() しないまま slctWin() して描画することもできて、その場合は表画面と同一サイズで blike が openVWin() する。 --描画関数がどの画面に対して描画を行うかを指定する。 openVWin() しないまま slctWin() して描画することもできて、その場合は表画面と同一サイズで blike が openVWin() する。
--[01f以降] copyRct0()+-[01f以降] copyRct0(int sx, int sy, int n0, int x0, int y0, int n1, int x1, int y1) 
 +--ウィンドウのある領域の画像を、別のウィンドウの同じ大きさの領域にコピーする。sxとsyは領域のサイズで、n0やn1はウィンドウ番号。 n0, x0, y0 の内容が、 n1, x1, y1 へコピーされる。 
 +--n0とn1が同じウィンドウを指していてもよく、その場合は同一画面内でのコピーになる。ただし領域が重なっていてはいけない。
--[01f以降] copyRct1()+-[01f以降] copyRct1(int sx, int sy, int n0, int x0, int y0, int n1, int x1, int y1, int ic) 
 +--ウィンドウのある領域の画像を、別のウィンドウの同じ大きさの領域にコピーする。その際、 ic で指定した色が透明色として扱われる。 
 + 
 +*** そのほかの関数群 [#g0dd6fe4] 
 +-[01f以降] int rnd(int n) 
 +--0からn-1の範囲の乱数を返す。 
 + 
 +-[01f以降] srand(int s) 
 +--乱数のパターンを指定する。 
 + 
 +* ドライバ関数群 [#r913b417] 
 +-[01f以降] 各OSのmain関数 
 +--この関数は、ドライバに必要な初期化を行って、さらに bl_init(); で blike の内部を初期化したのち、 blMain(); を呼び出す。 
 +--もし blMain(); から帰ってきた場合は、アプリの終了が期待されているので、速やかにドライバの終了処理や bl_exit(); で blike の内部の終了処理を完了させたのち、アプリそのものをそのOSのやり方で終了する。現状では終了コードは渡されないので、常に正常終了でかまわない。 
 + 
 +-[01f以降] void *bld_malloc(unsigned int bytes) 
 +--この関数は、そのOSにおけるメモリ確保を期待している。確保に失敗した場合は NULL (0) を返してほしい。 
 + 
 +-[01f以降] void bld_free(void *p, unsigned int bytes) 
 +--この関数は、そのOSにおけるメモリ開放を期待している。bytesは確保時と同じ値を渡すので、必要であれば利用してよい。 
 + 
 +-[01f以降] void bld_openWin(int sx, int sy) 
 +--この関数は、そのOSにおけるウィンドウオープンを期待している。sxは160以上、syは1以上を blike 側で保障する。 
 +--ウィンドウに表示してほしいグラフィックのイメージバッファは、 bl_work.win[BL_SYSWIN].buf で参照できる(これは int * 型)。したがって、 int の配列で不都合がないのなら、ドライバ側でウィンドウのイメージを確保する必要はないだろう。 
 +--sxやsyについても、 bl_work.win[BL_SYSWIN].xsiz, bl_work.win[BL_SYSWIN].ysiz を参照すればいつでも得られるので、ドライバ側で保存する必要はないだろう。 
 + 
 +-[01f以降] void bld_flshWin(int sx, int sy, int x0, int y0) 
 +--この関数は、イメージバッファ内の指定された範囲のフラッシュを期待している。sxやsyが0以下になるとか、画面外のピクセルが含まれてしまうなど、そういうやっかいなパラメータを渡すことはないので、その辺はドライバ関数が心配する必要はない。 
 +--setMode(BL_DBGFLSH); では、不正なカラーコード(0x000000未満とか0xffffffより大きいとか)を渡さないようになっている。リリースモードの場合は、チェックを省略しているので、もしかしたら渡してしまうかもしれないが、しかしとりあえず常に不正なカラーコードが来ることはないと仮定していいと思われる。 
 +---デバッグが完了しないうちにリリースモードを指定するほうがおかしいので。

トップ   差分 バックアップ 複製 名前変更 リロード印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ
新着

目次
メンバー一覧


最新の20件
2016-10-01 2016-09-08
  • @MenuBar.
2016-09-07 2016-09-04 2016-08-15 2015-09-23 2014-07-30 2014-07-04 2014-02-04 2013-10-26 2013-06-21 2013-06-17 2013-06-15 2013-04-02 2013-02-09 2013-02-04 2012-12-25 2012-12-01 2012-05-28 2012-03-31

トピック一覧
一般用コメント最新
新掲示板lina
2016/9/5 20:58
SandBoxゲスト
2016/9/4 12:01
RecentDeletedlina
2015/6/2 19:29
Old-OSASK-MLlina
2014/6/29 9:14
hideyosi/メールhideyosi
2014/1/6 20:17
hideyosi/募集中lina
2013/11/8 19:56

このサイトは川合秀実から委託を受けて、OSASKコミュニティによって管理・運営されています。