サイトトップへ
OSASK.NET
  サイトトップへ       新掲示板(閉鎖済)   Wiki(凍結済)   旧掲示板(廃止済)   ニュース(廃止済)  
  
1: 2011-03-09 (水) 11:43:53 k-tan ソース 現: 2024-01-08 (月) 12:58:53 lina ソース
Line 7: Line 7:
*** ドライバ関数群 [#za94daa3] *** ドライバ関数群 [#za94daa3]
-[01f以降] 各OSのmain関数 -[01f以降] 各OSのmain関数
---この関数は、ドライバに必要な初期化を行って、さらに bl_init(); で blike の内部を初期化したのち、 blMain(); を呼び出す。 +--この関数では、ドライバに必要な初期化を行って、 bl_main(); を呼び出す。 
---もし blMain(); から帰ってきた場合は、アプリの終了が期待されているので、速やかにドライバの終了処理や bl_exit(); で blike の内部の終了処理を完了させたのち、アプリそのものをそのOSのやり方で終了する。現状では終了コードは渡されないので、常に正常終了でかまわない。+--もし bl_main(); から帰ってきた場合は、アプリの終了が期待されているので、速やかにドライバの終了処理をして、アプリそのものをそのOSのやり方で終了する。現状では bl_main() からは常に0が返るので、常に正常終了でかまわない。
-[01f以降] void *bld_malloc(unsigned int bytes) -[01f以降] void *bld_malloc(unsigned int bytes)
---この関数は、そのOSにおけるメモリ確保を期待している。確保に失敗した場合は NULL (0) を返してほしい。+--この関数は、そのOSにおけるメモリ確保を期待している。確保に失敗した場合は NULL を返してほしい。
-[01f以降] void bld_free(void *p, unsigned int bytes) -[01f以降] void bld_free(void *p, unsigned int bytes)
Line 22: Line 22:
-[01f以降] void bld_flshWin(int sx, int sy, int x0, int y0) -[01f以降] void bld_flshWin(int sx, int sy, int x0, int y0)
---この関数は、イメージバッファ内の指定された範囲のフラッシュを期待している。sxやsyが0以下になるとか、画面外のピクセルが含まれてしまうなど、そういうやっかいなパラメータを渡すことはないので、その辺はドライバ関数が心配する必要はない。+--この関数は、イメージバッファ内の指定された範囲のフラッシュを期待している。ウィンドウをオープンしてないのにフラッシュが呼ばれるとか、sxやsyが0以下になるとか、ウィンドウ外のピクセルが含まれてしまうなど、そういうやっかいな挙動はないので、その辺はドライバ関数が心配する必要はない。
--setMode(BL_DBGFLSH); では、不正なカラーコード(0x000000未満とか0xffffffより大きいとか)を渡さないようになっている。リリースモードの場合は、チェックを省略しているので、もしかしたら渡してしまうかもしれないが、しかしとりあえず常に不正なカラーコードが来ることはないと仮定していいと思われる。 --setMode(BL_DBGFLSH); では、不正なカラーコード(0x000000未満とか0xffffffより大きいとか)を渡さないようになっている。リリースモードの場合は、チェックを省略しているので、もしかしたら渡してしまうかもしれないが、しかしとりあえず常に不正なカラーコードが来ることはないと仮定していいと思われる。
---デバッグが完了しないうちにリリースモードを指定するほうがおかしいので。 ---デバッグが完了しないうちにリリースモードを指定するほうがおかしいので。
 +
 +-[01f以降] int bld_getSeed()
 +--この関数は、デフォルトの乱数の種を計算するためのものである。できれば起動するごとに異なる値が返されることが望ましい(「はりぼてOS」ではいい方法がなかったので常に1を返している)。
 +
 +-[01f以降] void bld_initFont()
 +--この関数は、デフォルトのフォントをセットするためのものである。これはOSによっては8x16ドットのフォントを提供してくれるかもしれないと思って、サイズ節約のためにつけられている。もしそのようなAPIを持たないOSであったり、もしくはフォントが違うとか、APIはあるが仕様がよく分からないといった場合は、以下のような実装でかまわない。
 + void bld_initFont()
 + {
 +     bl_initFont();
 +     bl_work.mod |= BL_READYFONTS;
 +     return;
 + }
 +--むしろ、現状ではフォントのロード方法がきちんと決まっていないので、上記以外の実装は危険である。
 +
 +-[01f以降] void bld_flshSys()
 +--この関数は、ドライバが状態変化などを検出し、それに応対することを期待している。もし何もすることがないのなら(状態変化がないとか、もしくは割り込み駆動型のドライバであるとか)、もちろん何もしないですぐに return; してほしい。
 +
 +-[01f以降] void bld_waitNF()
 +--この関数は、CPUの負荷が下がる程度に、少しの間休んでくれることを期待している。あまり長く休まれてしまうと、 wait() の時間分解能が落ちる。かといって休む時間が短いと仕事がないのにもかかわらず負荷が下げられない。
 +
 +-[01f以降] int bld_vsnprintf(char *b, int n, const char *f, va_list ap)
 +--この関数は vsnprintf() を実行するためのものである。これはOSによってはこの関数をAPIやDLLで提供してくれるかもしれないと思って、サイズ節約のためにつけられている。もしそのようなAPIを持たないOSであれば、そのうちblike側で簡易代用関数を用意するのでそれを使ってほしい。
  

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

目次
メンバー一覧


最新の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コミュニティによって管理・運営されています。